★初心者にVisual C++を教えるスレ★ Part18
■ このスレッドは過去ログ倉庫に格納されています
0656デフォルトの名無しさん
2005/05/07(土) 19:22:55今はメモリが豊富なので統合されてますが。
「プリプロセッサ」が処理するのは#include,#define,#ifdef,#ifなどの#〜のキーワードだけです。
で、typedefですが、これは「プリプロセッサ」のキーワードではなく「C言語コンパイラ」のキーワードです。
つまり「プリプロセッサ」の後に処理されます。
また、typedefは型を置き換えるのではなくて、型を「拡張」するために存在します。
>>652の例では、"ii"は"int"に展開されるのではなくて、intと同じ"32bit符号付整数型"として扱われます。
classやstruct、unionをtypedefした時も同じで、"32bitの(内部処理的な)ポインタ型"になります。
もし"展開"していたら、同じclassを多重定義することになってしまいます。
typedef class tag_tcls { int x; int y } T_CLS;
T_CLS a;
T_CLS b;
↓展開すると
class tag_tcls { int x; int y } a;
class tag_tcls { int x; int y } b;
■ このスレッドは過去ログ倉庫に格納されています