안녕하세요. 이번에는 Objective-C에서 사용되는 typedef와 #define에 대해 간략적으로 정리해보겠습니다.
typedef
Objective-C 프로그래밍 언어는 typedef라는 키워드를 제공하는데, 이 키워드를 사용하여 유형에 새로운 이름(별명)을 지정할 수 있습니다.
다음은 1 바이트 숫자에 대해 'BYTE' 라는 별명을 지정하는 코드입니다.
typedef unsigned char BYTE;
이 유형 정의 후, 식별자 BYTE는 유형 unsigned char의 약어로 사용될 수 있습니다.
BYTE b1, b2;
위와 사용할 수 있습니다.
보통 대문자는 이러한 정의에 사용되어 사용자에게 유형 이름이 실제로 기호 약어임을 상기 시키지만 다음과 같이 소문자를 사용할 수 있습니다.
typedef unsigned char byte;
typedef를 사용하여 사용자 정의 데이터 형식에도 이름을 지정할 수 있습니다.
예를 들어, 구조와 함께 typedef를 사용하여 새 데이터 유형을 정의한 다음 해당 데이터 유형을 사용하여 다음과 같이 구조 변수를 직접 정의 할 수 있습니다.
typedef struct Books {
NSString *title;
NSString *author;
NSString *subject;
int book_id;
} Book;
int main() {
Book book;
book.title = @"Objective-C Programming";
book.author = @"TutorialsPoint";
book.subject = @"Programming tutorial";
book.book_id = 100;
return 0;
}
#define
#define은 매크로상수라고 불린다.
전처리기 종류중 한개이다. 프로그램에서 여러번 사용되는 상수값을 고정적으로 정해둘 수 있다.
#define testValue @"HELLo"
#define testIntValue 11
위와 같이 사용할 수 있다.
typedef vs #define
typedef 는 타입에 별명을 주는것만 가능하여 제한적이지만, #define은 1을 ONE으로 정의하는 것처럼 값에 별명을 줄 수 있다.
참조사이트
https://www.tutorialspoint.com/objective_c/objective_c_typedef.htm
https://c10106.tistory.com/2463
'공부 > iOS' 카테고리의 다른 글
Swift - Optional 2 ( Optional Binding, Implicitly Unwrapped Optionals) (0) | 2020.06.26 |
---|---|
Swift - Optional(옵셔널) 기본 (0) | 2020.06.23 |
iOS 계층구조 (0) | 2020.06.04 |
Swift - typealias (0) | 2020.05.20 |
[Obj-C] @class(Forward declarations)에 대해서... (0) | 2020.04.29 |