C言語におけるtypedefキーワードの役割
2450 ワード
C言語にはtypedefキーワードが用意されており、タイプに新しい名前を付けることができます.次の例では、1バイトタイプについてBYTEという用語を定義します.
このタイプ定義の後、識別子BYTEは、例えば、タイプunsigned charの略として使用され得る.
typedefは構造体タイプによく名前を付けます
typedefと#defineの違い
#defineはC命令であり、typedefと同様に様々なデータ型の別名を定義するためにも使用されますが、以下の点で異なります. typedefはタイプ定義記号名に限定されます.#defineはタイプ定義別名だけでなく、数値定義別名も定義できます.たとえば、1をONEと定義できます. typedefはコンパイラによって解釈され、#define文はプリコンパイラによって処理される.
typedef unsigned char BYTE;
このタイプ定義の後、識別子BYTEは、例えば、タイプunsigned charの略として使用され得る.
BYTE b1, b2;
typedefは構造体タイプによく名前を付けます
#include
#include
typedef struct Book {
char *name;
int id;
} Book;
int main() {
Book book; // Book
book.name = "C ";
book.id = 12345;
printf(" : %s
", book.name);
printf(" ID : %d
", book.id);
return 0;
}
: C
ID : 12345
typedefと#defineの違い
#defineはC命令であり、typedefと同様に様々なデータ型の別名を定義するためにも使用されますが、以下の点で異なります.
#include
#define TRUE 1
#define FALSE 0
int main() {
printf("TRUE : %d
", TRUE);
printf("FALSE : %d
", FALSE);
return 0;
}
TRUE : 1
FALSE : 0