C 형식 정의


C 언어는 유형에 새 이름을 지정하는 데 사용할 수 있는 typedef 키워드를 제공합니다. 다음 예에서는 단일 바이트 숫자에 대해 BYTE라는 용어를 정의합니다.

typedef unsigned char BYTE;

이 유형 정의 후에 식별자 BYTE는 unsigned char 유형의 약어로 사용될 수 있습니다. 예:

BYTE  b1, b2;

관례에 따라, 정의는 사용자에게 유형 이름이 기호 약어임을 상기시키기 위해 대문자로 표시되지만 다음과 같이 소문자를 사용할 수도 있습니다.

typedef unsigned char byte;

typedef를 사용하여 사용자 정의 데이터 유형에 새 이름을 지정할 수도 있습니다. . 예를 들어, 다음과 같이 구조체에 typedef를 사용하여 새 데이터 형식을 정의한 다음 이 새 데이터 형식을 사용하여 구조체 변수를 직접 정의할 수 있습니다.

#include <stdio.h>#include <string.h> typedef struct Books{   char  title[50];   char  author[50];   char  subject[100];   int   book_id;} Book; int main( ){   Book book;
 
   strcpy( book.title, "C Programming");
   strcpy( book.author, "Nuha Ali"); 
   strcpy( book.subject, "C Programming Tutorial");
   book.book_id = 6495407;
 
   printf( "Book title : %s\n", book.title);
   printf( "Book author : %s\n", book.author);
   printf( "Book subject : %s\n", book.subject);
   printf( "Book book_id : %d\n", book.book_id);   return 0;}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. 다음 결과:

Book  title : C ProgrammingBook  author : Nuha AliBook  subject : C Programming TutorialBook  book_id : 6495407

typedef 대 #define

#definetypedef와 유사하지만 다양한 데이터 유형에 대한 별칭을 정의하는 데 사용되는 C 지시문이지만 다음과 같은 점에서 다릅니다.

  • typedef 유형에 대한 기호 이름 정의로 제한되며 #define은 유형에 대한 별칭뿐만 아니라 숫자 값에 대해서도 정의할 수 있습니다. 예를 들어 1을 ONE으로 정의할 수 있습니다.

  • typedef은 컴파일러에 의해 해석되고 #define 문은 사전 컴파일러에 의해 처리됩니다.

#define의 가장 간단한 사용법은 다음과 같습니다.

#include <stdio.h> #define TRUE  1#define FALSE 0 int main( ){
   printf( "Value of TRUE : %d\n", TRUE);
   printf( "Value of FALSE : %d\n", FALSE);   return 0;}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

Value of TRUE : 1Value of FALSE : 0