記事には広告を含む場合があります。

C言語入門講座

C言語・C++でif(0)、if(1)を使うタイミングと利点

2022年5月15日

if(0)、if(1)って使わないよね?え、使うの?!なんで?

こんな疑問にお答えします。

oyu
C言語とC++を使って組み込み系エンジニアをしていた筆者が解説します。筆者も何度か使ったことがあります。

記事の内容

  • if(0)、if(1)はどういう時に使うのか
  • if(0)、if(1)を使う理由

C言語・C++でif(0)、if(1)を使うタイミングと利点

デバッグコード

動作確認(デバッグ)用のコードを後の人のために残しておくのに使っていました。

例:

#include <stdio.h>
void main()
{
    int a=1,b=2,area;
    if(0) printf("a=%d,b=%d\n",a,b); //デバッグ時だけif(1)にする
    area=a*b;
    printf("area=%d",area) //必要なデータ
}

実行結果

area=2

普段はデバッグコードを使わないようにif(0)としておきますが、aとbに代入された値を確認したい時だけif(1)にします。このようにデバッグコードを使うか否かを簡単に切り替えられて便利です。

複数人で開発していると後から別の人がコードを参考にしたり、一部付け加えたりすることがよくあります。その際に前の人がデバッグコードを残してくれていると助かることがあります。

oyu
筆者も何度か助けられました。

例では簡単なコードを挙げましたが複雑なプログラムではデバッグコードも複雑になりがちなので残す価値があります。

デバッグコードを何でもかんでも残してしまうとコードが汚くなってしまうので「デバッグに必要だけどまた書くのはおっくう」というコードだけを残すようにするといいと思います。

else ifの見栄えを良くする

else ifが連なる文だとコードを見やすくするためにif(0)を使うことがあります。

例:

#include <stdio.h>
void main()
{
    int a=1,b=1;
    if(0){}
    else if(a==0) printf("a=0\n"); //揃っていて見やすい
    else if(a==1) printf("a=1\n");
    else if(a==2) printf("a=2\n");

    if(b==0) printf("b=0\n"); //ずれて見にくい
    else if(b==1) printf("b=1\n");
    else if(b==2) printf("b=2\n");
}

実行結果

a=1
b=1

前半の方が揃って見やすいのではないでしょうか。プログラム動作は同じなのですが、後からでもわかりやすいコードを書くための工夫です。

ifの後ろにスペースを入れて揃えればいいんじゃない?

こう思う方もいらっしゃるかもしれませんし、おっしゃる通りです。しかし「if(0)を使った方がより揃って見えるからそっちにしたい」と思う方もいらっしゃいます。

結局どっちの書き方でもいいです。見やすくすることが最終目的なのでそのためにどんな手段を取るかは人それぞれというわけです。

まとめ:見やすいコード

コーディングに当たって大事なことの1つが見やすいコードを書くことです。見やすければ早く解読できて残業時間を減らせます。逆に、コードがめちゃくちゃ見にくいとイラっとするはずです(経験あり)。

複数人で開発しているときはもちろんですが、1人で開発していても未来の自分のために見やすいコードを心がけてコーディングすることをおすすめします。

ブログランキング参加中。クリックしてもらえると励みになります。

ブログランキング・にほんブログ村へ

-C言語入門講座