>>201
その人に、「最適化って知ってますか?」 と突っ込んでください。
第一 while(0) の何がループなのかと。

do 〜 while(0) は、マクロを関数っぽく記述するのに絶対必要。
if(cond1)
  SWAP(a, b);
else if(cond2)
  SWAP(b, c);
else
  SWAP(c, a);
とか書かれたら、do 〜 while(0) 以外で書いたマクロは対応できない。
で、マクロを関数っぽく扱えるようにするのは、その実装がマクロなのか関数
なのかを使用者に意識させないために必要。