スポンサーリンク

対策1 if文の中にマクロを使うときは{}を使う

複数行のマクロをif文の中で使うときは、if文で{}を使うと安全度が増します。

例えば、下記のソースコードがあったとします。

下記の部分はコンパイルエラーとなります。

下記が実際のエラーです。

if文で{}を使うとコンパイルが通ります。

スポンサーリンク

対策2 マクロをdo{}while(0)で囲む

マクロをdo{}while(0)で囲むと、先程の{}がないif文でもコンパイルが通ります。
こちらの方がより安全ですね。

先程のマクロをdo{}while(0)で囲みます。
コンパイルが通りますね。
ただ、そもそも、if文では{}をつけるのが良いとは思いますね。

スポンサーリンク