解決済みの質問
質問:No.5478420
困ってます
お気に入り投稿に追加する (0人が追加しました)
回答数3
閲覧数2812
#if 1 #elseの意味について
#if 1
 文 
#else 
 文
#endif
という表記に関して、「#if 1」が「必ず有効」という事はわかるのですが、ここでの「#else」とは「1」でない時ということで、「#if 0」と同じ意味と考えていいのでしょうか?
投稿日時 - 2009-11-26 21:15:55
質問者が選んだベストアンサー
回答:No.2
>「#if 0」と同じ意味
「#if~#endif」がすこーぷの範囲ですから、似ていますが、正確には違います。

「#if 1」であれば、「#if 1~#else」の間の処理が有効、「#else~#endif」が無効、
「#if 0」であれば、「#else~#endif」の間の処理が有効、「#if 0~#else」が無効
と排他になります。
投稿日時 - 2009-11-26 21:35:35
この回答を支持する
(現在0人が支持しています)
お礼
ご回答ありがとうございます。
おそらくデバックの時にやりやすい様に、こういった表現にしたんですね。
投稿日時 - 2009-11-26 22:46:59
この質問は役に立ちましたか?
3人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答
回答:No.3
ひょっとして
if (1) 文
else 文
endif
ですか? そうなるとelse文は常に実行されませんよね。
ですからif (0)と全く同等です。
むしろelse文は無意味ということに……
投稿日時 - 2009-11-26 21:40:20
この回答を支持する
(現在0人が支持しています)
お礼
ご回答ありがとうございます。
やはり1のelseは0ですよね。
投稿日時 - 2009-11-26 22:51:34
回答:No.1
評価すべき対象が1,0の2値しか取らないのであれば、
私の知っている範囲の言語では同値だと思います。
投稿日時 - 2009-11-26 21:32:17
この回答を支持する
(現在0人が支持しています)
もっと聞いてみる
関連するQ&Aはこちら
C言語のプリプロセッサ#ifdef~#endifを使用して以下のソースファイルを作成しました。コンパイルするとエラーになります。 (pre.c)*********************** /* ...
C#の0.98fの様な表記方法について質問です。 現在、C#を学習しています。 教材に0.98fの表記がでてきたのですが、説明文がありませんでした。 上記の様な  数値 + アルファベット の表記...
#if
#if defined(DECRYPTION_KEY_SCHEDULE) #if DEC_ROUND == NO_TABLES #define ff(x) (x) #else #define f...
この他の関連するQ&Aをキーワードで探す
プログラミングのサブカテゴリ
[PR] おすすめの注目情報
カテゴリ:C・C++
RSS
-PR-
PR
-PR-