表明 (プログラミング)
しかし、このような表明にも利点がある。つまり、プログラマが自分の意思で malloc のエラーに対処するコードを書かない選択をしたことを他の人々に知らしめているのである。
表明の引数である式の副作用に依存するという間違いをすることもある。表明は条件の評価(バグがないことの確認)に使われるものであって、全く実行されないこともあることを常に念頭に置いておく必要がある。最終的にプログラムに問題がないと判断すれば表明を抑止する可能性がある。
例えば、次のようなC言語のプログラムがあるとする。
一見すると、malloc の値を ptr に代入して、同時に NULL かどうかをチェックするという賢いコーディングに見えるかもしれない。しかし、malloc 呼び出しと ptr への代入は副作用を伴い、その副作用はプログラム本体で必須なものである。コンパイル時に NDEBUG というシンボルを定義すると assert() は除去されるので、malloc() が呼び出されなくなり、ptr が初期化されずに使われることになる。結果として未定義動作を引き起こす。