• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if文の処理部分の括弧を省略した場合の書き方)

if文の処理部分の括弧を省略した場合の書き方

このQ&Aのポイント
  • C言語のif文の書き方についてですが、括弧を省略した場合、誤った動作をする可能性があります。
  • 括弧を省略した場合、次のif文の処理部分は正常に動作しない場合があります。
  • コンパイラはエラーを出さないことがありますが、括弧を使用することを推奨します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

コメントは翻訳フェーズ3で一つの空白文字に置き換えられます。 それに対し,if文は翻訳フェーズ7で処理されます。 # ISO/IEC 9899:1999 5.1.1.2 Translation phases 段落1 なので,コメントはあっても無くても一緒の意味になります。 そもそも,Cにおいて「行」が関係するのは ・//コメント ・前処理指令 ・文字列リテラル くらいです。 # 行連結文字は翻訳フェーズ2だから,上記は全て行連結文字の影響を受けます。

diy_sunny
質問者

お礼

回答いただきありがとうございます。現在のif分でも問題ないことがわかり、助かりました。やはりC言語の詳細な取り決めがあるのですね。

その他の回答 (1)

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.2

>正常に動作できますでしょうか? これに関しては、#1さんが的確に回答されているので、解決済みということで。 職業プログラマは、おそらく「中括弧を省略するな」と教育されていると思います。 質問者が感じた不安は、コードの不安定さを示しています。 return T_NONE; の部分を、デバッグ等の為に、 printf("Code=%d\n", T_NONE); return T_NONE; と変更されたら、意図通り動かなくなります。 不安な要素は、必ず将来表面化し、トラブルとなって質問者に返ってくるでしょう。 その時に後悔しないように、素直に中括弧を付けるようにしましょう。