93

C++ のプリプロセッサ ディレクティブについて質問があります。

例えば:

#ifndef QUESTION

//some code here

#ifndef QUESTION

//some code here

#endif

#endif

このように使用できますか? C++ コンパイラはifndefandendifを正しい方法で一致させることができますか?

4

3 に答える 3

121

はい、できます。#endifステートメントは、対応する が存在しない以前のor #if #ifdefetc#ifndefに一致し#endifます。

例えば

#if  ----------|
#if  -----|    |
#endif ---|    |
#endif --------|
于 2011-07-13T11:54:34.340 に答える
55

#ifはい、ネスト/#endifブロックできます。いくつかのCコーディングスタイルはあなたに書くように言うでしょう

#ifdef CONDITION1
# ifdef CONDITION2
# endif
#endif

ネストのレベルを示すためにスペースを使用します。

于 2011-07-13T11:55:46.567 に答える
0

あなたのコードでは、#undef QUESTION をしない限り、#ifndef QUESTION セクションは破棄されます。

幸運を!

于 2011-07-13T11:59:04.307 に答える