人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

変な質問してすみませんが、
教えてください。m(_ _)m
C言語について教えてください。
#define TRUE (1)と定義した場合ですが、TRUEの値って何バイトになるのですか?※シンボルで定義した値って何バイトになるのですか?コンパイラが勝手に
領域を確保してくれたりします?

環境は、VC++6.0を使用しています。


●質問者: masa193
●カテゴリ:インターネット ウェブ制作
✍キーワード:C言語 VC++ すみません コンパイラ シンボル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Mook
●41ポイント

C での define はソースレベルでの定義になりますので、

ソース上で数値の 1 を記述したのと同じ扱いになります。


なので厳密には型を含めて定義した方が良いと思いますが、

通常は int と同じサイズが確保されます。


http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_019/cs2_019...

◎質問者からの返答

おお、確かにそうですね。実際に

型を含めた定義を心掛けます。


2 ● KUROX
●57ポイント ベストアンサー

>コンパイラが勝手に領域を確保してくれたりします?

たぶん、YES。

#C言語の TRUE/FALSE

http://blog.fideli.com/be-con/archive/46/0

◎質問者からの返答

ありがとうございます。


3 ● BlackSabbath
●47ポイント

#define した内容はプリプロセッサによって

int i = TRUE ; → int i = (1) ;

if (TRUE) → if ((1))

のようにソースコードそのものを置き換えたのと同じことになります。

なので状況によりけりです。

◎質問者からの返答

そうですか。大変分かり易いです。

ありがとう御座いました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ