一度、本で読んだことがある事なのですが、
本が手元にないので、本を見れば分かる事を質問するのは
ちょっと、うざいかもしれないけど、
ここで質問させてください。

マクロを書くときに
#define swap(type, x, y) type temp = x; x = y; y = temp;
これではエラーになって、
#define swap(type, x, y) do { type temp = x; x = y; y = temp; } while (0)
のように、一度だけ実行されるループにしなければ
いけないのでしたっけ?