while(0)利用価値まとめ

http://twitter.com/Misho/status/1188398457
http://twitter.com/Misho/status/1188399507
http://twitter.com/Misho/status/1188400335
http://twitter.com/Misho/status/1188402238

  1. do{ } while(0); の途中に break; を配置して,途中で離脱できるブロックを組み立てる。
  2. *や/が多い文章も安心!!無限入れ子構造的コメントアウト!!!
  3. while(0){ }で囲った文章は実行されないけどコンパイルされるので,コメントアウトされたコードの文法的正しさを維持できる!!

これ実用的にはどうなんでしょうね。案外いける気もしますが。
1.について補足。

if(stmt1){
  if(stmt2){
    hoge;
  }else if(stmt3){
    if(stmt4)
      goto end_of_nest;
  }else{
    hage;
  }
  huga;
}
end_of_nest:
;

みたいなif文のネストが深くなってきたところから脱出するときに、gotoではなく

do{
  if(stmt1){
    if(stmt2){
      hoge;
    }else if(stmt3){
      if(stmt4)
        break;
    }else{
      hage;
    }
    huga;
  }
}while(0);

と書くということです。