パスワードを忘れた? アカウント作成
13585426 journal
プログラミング

minetの日記: for文が泣いている 5

日記 by minet

for (;;) { このブロックは無限ループ }
for (;0;) { このブロックは決して実行されない }

前者はたまに見かけるけど、後者の書き方を先日初めて見かけた。広域のコメントアウト代わりらしい。
実行はされないけど中でいろいろ記述できたり、コードとしては生きてるからエディタの文法支援が効いてリファクタリングしやすかったり、ただのコメントアウトより嬉しいらしい。なるほど。
while(1)while(0)と書くより可愛いような気もする。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2018年04月28日 2時03分 (#3400042)

    前世紀に for(;_;) で結構うけたものだったが宣言が必要という点でスマートではなかったか。

  • by wood377 (46309) on 2018年04月28日 14時22分 (#3400198) 日記

    最近のVisual stdioだと、実行されないコードってマーク付かないかな?
    デバッグ用に if (false) みたいなコードを置くと怒られる。
    単純にコメントアウトしておくと、文法チェックしてくれないし、、、
    で上記の例だと、文法チェックされそうだから、単なるコメント書く訳にはいかなそう。
    良いのか悪いのか?

  • by Anonymous Coward on 2018年04月28日 10時17分 (#3400129)

    do { 一度だけ実行されるブロック } while(0);
    というのが使われることがあります。関数形式のマクロを定義するときに,末尾にセミコロンをつけても構文エラーにならないようにするため。

typodupeerror

Stay hungry, Stay foolish. -- Steven Paul Jobs

読み込み中...