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