2

#ifdef 0C ++では、プログラマーがコードの実行をブロックするために使用することを知っていますが、この同じプロジェクトでは、多くのが表示され#ifdef 1ます。これは、コードが常に実行されることを意味しますか?残念ながら、コードはコンパイルされないので、実行してテストすることはできません。

4

1 に答える 1

12

#ifdef 1整形式ではありません。#ifdefディレクティブには単一の識別子が必要です。1は識別子ではありません。

#ifdef xと同等#if defined(x)です。前defined処理演算子はtrue、識別子が定義されたマクロ(つまり、で定義され#define、まだ定義されていないマクロ#undef)を指定した場合、またはそれ以外の場合に生成されfalseます。

ディレクティブは、ディレクティブとそれに続く対応する、、、またはディレクティブ(ディレクティブのネスト)の#if間の行のコンパイルを有効または無効にします。#else#elif#endif

おそらく、あなたが本当に探しているのは#if 1(または#if 0)であり、これは有効です。

于 2011-07-28T03:16:05.273 に答える