『c専門家プログラミング』ノート--defineとtypedefの違い
873 ワード
#include <stdio.h>
#define peach int
typedef int banana;
int main(void){
unsigned peach a;
unsigned banana b;
return 0;
}
上のコードでは、
unsigned banana b;
ローのコンパイル中にエラーが発生します.
typedefは徹底的な「パッケージ」タイプであるため、#defineは単純なテキスト置換にすぎない.
また見て、
#include <stdio.h>
#define peach char*
typedef char* banana;
int main(void){
peach a,b;
banana c,d;
printf("sizeof(a)=%d
",sizeof(a));
printf("sizeof(b)=%d
",sizeof(b));
printf("sizeof(c)=%d
",sizeof(c));
printf("sizeof(d)=%d
",sizeof(d));
return 0;
}
実行結果:
sizeof(a)=4 sizeof(b)=1 sizeof(c)=4 sizeof(d)=4