assertを書け
とだけ言っておこう。まず、書け、と。
その心
ユニットテストなんてとんでもない。関数化もままならない。グローバル変数だらけ。あー分かりましたよ。どうしようもないっていうんでしょ。でもassertなら書けるでしょ。関数概要のコメント書かなくていいからassert書いて。テストを重視するのと、関数仕様を明確にする習慣の第一歩として。
ちょっと待て
assert.hでググられる複数のサイトに以下のようなことが書いてある。
以下のようにすれば無効化されます。#define NDEBUG #include
そりゃそうだけど、NDEBUGをソース上に静的に定義したら、再びassertを有効化するのにソースを直さなきゃいけないじゃないか。そんなの駄目だよ。自分で実際に使い込んでないのみえみえじゃん。