2

デバッグを実装する通常の手順の 1 つは、

#ifdef DEBUG

...debugging tests...

#endif

場合によっては、コードの一部で典型的な「チェック」アルゴリズムが必要になることがあります。そのため、通常は DEBUG フラグが定義されている場合にのみコードが呼び出されるように、関数でラップしたいと考えます。その関数を myDebug(); と呼びます。

これには 2 つの自然なアプローチがあります。次のように、myDebug() が呼び出されるたびに ifdef が追加されます。

#ifdef DEBUG

myDebug();

#endif

または myDebug は次のように定義されます。

void myDebug()
{
#ifdef DEBUG

...code...

#endif
}

基本的に、前者は関数呼び出しを回避し、後者は #ifdef/#endif を多く含むコードを配置することを回避します。

2つのうちの1つを選択するための「標準的な」規則、または私が知らない別の方法はありますか? 「スタイリング」の観点から2番目を選択する価値はありますか?

ありがとう

4

1 に答える 1

8

私は3番に行きます:

#ifdef DEBUG
#define myDebug(x) myDebug(x)
#else
#define myDebug(x) {}
#endif

このようにして、コードのどこにでも厄介な#ifdefs がなく、非デバッグ ビルドの場合、コードは生成されません。

于 2012-04-16T09:04:14.370 に答える