C言語のif文の書き方についてですが、通常
if(条件)
{
---処理1-------
}
else if(条件)
{
---処理2-------
}
else
{
----処理3------
}
括弧を使った場合は上のような動作をすると思うのですが、括弧を使った場合、
次のif文の”処理1”部分if((TEST_SENSOR & 0x03) == 0x03)は正常に動作できますでしょうか?
コメント文が1行入ってしまうとダメでしょうか?
コンパイラはエラーは出しませんでした。
if((TEST_SENSOR & 0x03) == 0x03)
//return TEST_ERR;
return T_NONE;
else if((SENSOR & 0x03) == 0x01)
return T_LOCK;
else if((TEST_SENSOR & 0x03) == 0x02)
return T_UNLOCK;
return T_ERR;
どうぞ、ご教授頂きますよう、お願い致します。
No.1ベストアンサー
- 回答日時:
コメントは翻訳フェーズ3で一つの空白文字に置き換えられます。
それに対し,if文は翻訳フェーズ7で処理されます。
# ISO/IEC 9899:1999 5.1.1.2 Translation phases 段落1
なので,コメントはあっても無くても一緒の意味になります。
そもそも,Cにおいて「行」が関係するのは
・//コメント
・前処理指令
・文字列リテラル
くらいです。
# 行連結文字は翻訳フェーズ2だから,上記は全て行連結文字の影響を受けます。
回答いただきありがとうございます。現在のif分でも問題ないことがわかり、助かりました。やはりC言語の詳細な取り決めがあるのですね。
No.2
- 回答日時:
>正常に動作できますでしょうか?
これに関しては、#1さんが的確に回答されているので、解決済みということで。
職業プログラマは、おそらく「中括弧を省略するな」と教育されていると思います。
質問者が感じた不安は、コードの不安定さを示しています。
return T_NONE;
の部分を、デバッグ等の為に、
printf("Code=%d\n", T_NONE);
return T_NONE;
と変更されたら、意図通り動かなくなります。
不安な要素は、必ず将来表面化し、トラブルとなって質問者に返ってくるでしょう。
その時に後悔しないように、素直に中括弧を付けるようにしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- C言語・C++・C# leetcode21 1 2022/04/21 11:53
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
VBAでループ内で使う変数名を可...
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
月度は何て読みますか?
-
セルの値が0はクリアするマクロ
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
インタラクティブの反対語は?
-
VBの質問#if 0 then ってどう...
-
UMLでの例外処理
-
リョウ・・・量?料?
-
2重のDo~Loopは?
-
findは動くがfindnextがマクロ...
-
Select Case文でこのようなこと...
-
ユーザーフォーム「frm_基本❶」...
-
IQテストの数列
-
Access チェックボックスでチェ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
DoEventsがやはり分からない
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
VBの質問#if 0 then ってどう...
-
VBAでCOPYを繰り返すと、処理が...
-
EXCEL VBA マクロ 実行する度に...
-
findは動くがfindnextがマクロ...
-
インタラクティブの反対語は?
-
UMLでの例外処理
-
リョウ・・・量?料?
-
Do~Loopした回数をカウントしたい
-
セックスレスの既婚女性は自慰...
-
月度は何て読みますか?
-
セルの値が0はクリアするマクロ
-
Loadイベント中にほかのイベン...
-
FFTの結果ついて
おすすめ情報