が、私は以下のようなコードの一部を持っているプリコンパイル済みヘッダーと期待動作していないよう。しかし、私が変更するとき#ifdefに#ifndefと#defineマクロを削除すると、コードが実行されます。以下のコードは、期待どおりに動作します。は#ifdefの
//#define FEATURE_A 1
void function()
{
// some code
#ifndef FEATURE_A
// code to be executed when this feature is defined
#endif
// some code
}
の#ifdef 内の最初のケースコードで、なぜ誰もが説明できます - #endifの実行されていない第2の場合には、それは動作しますか?誰が設定が間違っているかもしれないか教えていただけますか?
わからないこの問題あれば、私は事前に視覚的なスタジオに2010年
感謝を使用してい
UPDATE: 私はきれいにし、再実行し、秒1も動作していません。エディタで唯一可能なコードとして表示されます。
プロジェクト - >プロパティ - >構成プロパティ - > c/C++ - >プリプロセッサでマクロを定義すると、どちらも正常に動作します。
はあなたがどこかに '#undefのFEATURE_A'を持っていないことを確認している:あなたは、実際にプリコンパイル済みヘッダーとすべての作品の後
移動し、それを持っていますか? – mvp
前処理後にコードを見たい場合は、 '-E'フラグを付けてコンパイルしてください。 – aaronman
この動作を示すプログラム全体を投稿する必要があります。 –