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
#define은 typedef와 유사하지만 다양한 데이터 유형에 대한 별칭을 정의하는 데 사용되는 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