タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

debugとmacroに関するcrafのブックマーク (1)

  • 『コンパイルスイッチによるデバッグプリントの無効化』

    デバッグ用の Print 文や Assertion をコンパイルスイッチで無効化するということはよく行われます。 #ifndef NDEBUG #define TRACE(fmt, ...) printf(fmt, __VA_ARGS__) #else #define TRACE(fmt, ...) #endif しかし、上のような実装にしてしまうと、次のようなケースがリリースコンパイル時にエラーにならないということが起こります。 int a, b; ... TRACE("%d, %d, %d\n", a, b, c); ← c は未定義 もちろん、デバッグコンパイル時に「変数 c が定義されていない」といってコンパイラに怒られるので必ず気付くはずなのですが、ちょっとした変更だと手を抜いて片方のモードでしかコンパイルしないでチェックイン…なんてことをする人が現れて、事故が起こることもありま

    『コンパイルスイッチによるデバッグプリントの無効化』
  • 1