C의 형식 정의

C 언어는 유형의 새 이름을하는 데 사용할 수 있습니다,형식 정의 키워드를 제공합니다.다음의 예는 용어BYTE 단일 바이트 번호이며 정의

typedef unsigned char BYTE;

이 유형의 정의 후, 같은 식별자 BYTE부호 CHAR 타입 약어로서 사용될 수있다 :

BYTE  b1, b2;

다음과 같은 규칙에 따라, 정의는 상징적 인 이름이 약자로 입력을 사용자에게 경고하기 위해 문자를 대문자로한다, 그러나 당신은 또한 소문자를 사용할 수 있습니다 :

typedef unsigned char byte;

또한 사용자의 새 이름을 사용자 정의 데이터 형식에형식 정의 할 수 있습니다.예를 들어, 다음과 같이 새로운 데이터 유형을 정의하고 직접 변수의 구조를 정의하기 위해 새로운 데이터 유형을 사용하는 구조 타입 정의를 사용할 수있다 :

#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 Programming
Book  author : Nuha Ali
Book  subject : C Programming Tutorial
Book  book_id : 6495407

#DEFINE 대 타입 정의

C타입 #define 지시자는 데이터 유형의 다양한 별명을 정의하고, 유사한 형식 정의를위해 사용된다, 그러나 그들은 다음과 같은 차이점이있다 :

  • 타입 정의 형식 정의에만기호이름은#DEFINE는 별명의 유형을 정의 할 수 있지만, 또한 예를 들어, 하나 하나를 정의 할 수 있고, 값 별칭을 정의한다.
  • 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 : 1
Value of FALSE : 0