본문 바로가기

공부/iOS

Objective-C typedef에 대해서

안녕하세요. 이번에는 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