C++のプリプロセッサディレクティブについて質問があります。
例えば:
#ifndef QUESTION
//some code here
#ifndef QUESTION
//some code here
#endif
#endif
このように使用できますか。C++コンパイラはifndef
とendif
を正しい方法で一致させることができますか?
はい、できます。 #endif
ステートメントは、対応する#if
がなかった以前の#ifdef
#ifndef
または#endif
などに一致します。
例えば.
#if ----------|
#if -----| |
#endif ---| |
#endif --------|
はい、#if
/#endif
ブロックをネストできます。一部のCコーディングスタイルでは、次のように記述します。
#ifdef CONDITION1
# ifdef CONDITION2
# endif
#endif
ネストのレベルを示すためにスペースを使用します。
コードでは、#undef QUESTIONを使用しない限り、#ifndef QUESTIONセクションは破棄されます。
がんばろう!