教えてください。m(_ _)m
C言語について教えてください。
#define TRUE (1)と定義した場合ですが、TRUEの値って何バイトになるのですか?※シンボルで定義した値って何バイトになるのですか?コンパイラが勝手に
領域を確保してくれたりします?
環境は、VC++6.0を使用しています。
C での define はソースレベルでの定義になりますので、
ソース上で数値の 1 を記述したのと同じ扱いになります。
なので厳密には型を含めて定義した方が良いと思いますが、
通常は int と同じサイズが確保されます。
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_019/cs2_019...
おお、確かにそうですね。実際に
型を含めた定義を心掛けます。
ありがとうございます。
#define した内容はプリプロセッサによって
int i = TRUE ; → int i = (1) ;
if (TRUE) → if ((1))
のようにソースコードそのものを置き換えたのと同じことになります。
なので状況によりけりです。
そうですか。大変分かり易いです。
ありがとう御座いました。
ありがとうございます。