#define&typedefの違い
1029 ワード
1.処理時間が異なる1)#defineはプリプロセッサによって制御され、コンパイル前に操作が完了する.2)typedefはコンパイラによって制御され,コンパイル時に操作が完了する.
2.役割ドメイン1)#define役割ドメインはグローバルであり、コンパイラが#defineを操作できないため、その役割ドメインを制御できない.2)typedefの役割ドメインは、コンパイラが制御できるため制限されている.
3.使用1)#defineは単なる置換コードであり,正しいかどうかはチェックしない.2)typedefは、「他の要素のタイプに別名を1つ追加する」のように使用されることが多い.例:
2.役割ドメイン1)#define役割ドメインはグローバルであり、コンパイラが#defineを操作できないため、その役割ドメインを制御できない.2)typedefの役割ドメインは、コンパイラが制御できるため制限されている.
3.使用1)#defineは単なる置換コードであり,正しいかどうかはチェックしない.2)typedefは、「他の要素のタイプに別名を1つ追加する」のように使用されることが多い.例:
typedef int* int_p1;
int_p1 a, b, c; // a, b, and c are all int pointers.
#define int_p2 int*
int_p2 a, b, c; // only the first is a pointer!
const pint p1 = &i1; //p ,p , int * const p;
const PINT p2 = &i2; //p ,p , const int *p; int const *p;