Objective-C Typedef
Objective-C 프로그래밍 언어는 typedef, 유형에 새 이름을 지정하는 데 사용할 수 있습니다. 다음은 용어를 정의하는 예입니다.BYTE 1 바이트 숫자의 경우-
typedef unsigned char BYTE;
이 유형 정의 후에 식별자 BYTE를 유형의 약어로 사용할 수 있습니다. unsigned char, for example:.
BYTE b1, b2;
관례 상 대문자는 이러한 정의에 사용되어 유형 이름이 실제로 기호 약어임을 사용자에게 상기시켜 주지만 다음과 같이 소문자를 사용할 수 있습니다.
typedef unsigned char byte;
당신이 사용할 수있는 typedef사용자 정의 데이터 유형에도 이름을 부여합니다. 예를 들어, typedef를 구조와 함께 사용하여 새 데이터 유형을 정의한 다음 해당 데이터 유형을 사용하여 다음과 같이 구조 변수를 직접 정의 할 수 있습니다.
#import <Foundation/Foundation.h>
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;
NSLog( @"Book title : %@\n", book.title);
NSLog( @"Book author : %@\n", book.author);
NSLog( @"Book subject : %@\n", book.subject);
NSLog( @"Book Id : %d\n", book.book_id);
return 0;
}
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
2013-09-12 12:21:53.745 demo[31183] Book title : Objective-C Programming
2013-09-12 12:21:53.745 demo[31183] Book author : TutorialsPoint
2013-09-12 12:21:53.745 demo[31183] Book subject : Programming tutorial
2013-09-12 12:21:53.745 demo[31183] Book Id : 100
typedef 대 #define
그만큼 #define Objective-C 지시문으로, 다음과 유사한 다양한 데이터 유형에 대한 별칭을 정의하는데도 사용됩니다. typedef 그러나 다음과 같은 차이점이 있습니다.
그만큼 typedef 유형에만 기호 이름을 부여하는 것으로 제한되지만 #define 1을 ONE으로 정의 할 수있는 것처럼 값의 별칭을 정의하는데도 사용할 수 있습니다.
그만큼 typedef 해석은 컴파일러에 의해 수행됩니다. #define 명령문은 전처리기에 의해 처리됩니다.
다음은 #define의 가장 간단한 사용법입니다.
#import <Foundation/Foundation.h>
#define TRUE 1
#define FALSE 0
int main( ) {
NSLog( @"Value of TRUE : %d\n", TRUE);
NSLog( @"Value of FALSE : %d\n", FALSE);
return 0;
}
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
2013-09-12 12:23:37.993 demo[5160] Value of TRUE : 1
2013-09-12 12:23:37.994 demo[5160] Value of FALSE : 0