C言語@便利なマクロ
■ このスレッドは過去ログ倉庫に格納されています
0056デフォルトの名無しさん
2006/05/21(日) 00:07:17static void SASSERT_(void *) { }
#define SASSERT(b) SASSERT_(!(b))
b が静的な真値定数なら
引数が 0 になってヌルポインタとして扱えるため
コンパイルが通る。
何も処理しないため、最適化で削除される。
b が静的な偽値定数なら
引数が 1 になってポインタとして扱えないため
コンパイルに失敗する。
■ このスレッドは過去ログ倉庫に格納されています