안녕하세요.
맥파이입니다.
오늘은 typedef에 대해서 학습해볼 예정입니다.
typedef란 무엇인가?
typedef는 C 언어에서 사용되는 키워드로, 새로운 자료형을 만들기 위해 사용됩니다.
Objective-C에서도 typedef를 사용하여 새로운 타입을 만들 수 있습니다.
swift에서 typealias라고 생각할수 있습니다.
이렇게 만들어진 새로운 타입은 Objective-C 클래스의 인스턴스 변수나 매개 변수, 반환 값 등에 사용됩니다.
typedef NS_ENUM(NSInteger, Fruit) {
Apple,
Banana,
Orange,
Grape
};
Fruit라는 새로운 자료형을 만들고, 이 자료형에 Apple, Banana, Orange, Grape와 같은 값을 대입합니다.
Fruit 타입은, Objective-C 클래스에서 인스턴스 변수나 매개 변수, 반환 값 등으로 사용될 수 있습니다.
typedef를 사용하여 int 형을 반환하는 함수 포인터만들수도 있습니다.
typedef int (*Operation)(int, int);
Operation이라는 새로운 자료형을 만들고, 이 자료형에 int 형을 반환하는 함수 포인터를 대입할 수 있도록 하고 있습니다. 이렇게 만들어진 Operation 타입은, 함수의 매개 변수나 반환 값으로 사용될 수 있습니다.
typedef는 C 언어에서 사용되는 키워드로, 새로운 타입을 만드는 용도로 사용되며,
Objective-C에서도 typedef를 사용하여 새로운 타입을 만들 수 있습니다.
아래와 같은 용도로도 사용이 가능합니다.
/* Define float_t and double_t per C standard, ISO/IEC 9899:2011 7.12 2,
taking advantage of GCC's __FLT_EVAL_METHOD__ (which a compiler may
define anytime and GCC does) that shadows FLT_EVAL_METHOD (which a
compiler must define only in float.h). */
typedef float float_t;
float b1, b2;
Use typedef with struct
typedef를 사용하여 사용자 정의 데이터 형식에도 이름을 지정할수 있습니다.
typedef struct Car {
NSString *brand;
} Car;
Car sonata;
sonata.name = @"sonata";
struct Car {
NSString *brand;
} MyCar;
MyCar.brand = @"sonata";
NSLog(@"MyCar.brand : %@", MyCar.brand);
잼있는 공부가 되었습니다.
typedef를 그냥 눈으로만 보고 배워서 썼었는데, 좀 이해가 잘 되시나요?
그럼 다음 이야기에서 또 만나요!!