次のようなプリプロセッサディレクティブの使用方法を理解しています。
#if SOME_VARIABLE
// Do something
#else
// Do something else
#endif
しかし、SOME_VARIABLEでない場合に何かを実行したい場合はどうすればよいでしょうか。
明らかに私はまだこれを行うことができました:
#if SOME_VARIABLE
#else
// Do something else
#endif
。 。 。空の場合は残しますが、行う方法はありますか?
#if not SOME_VARIABLE
// Do something
#endif
Appleのドキュメント here はそうではないことを示唆していますが、これは非常に基本的なニーズのようです。
基本的に私はプリプロセッサと同等のことをしたい:
if(!SOME_VARIABLE)(
{
// Do Something
}
あなたは試すことができます:
#if !(SOME_VARIABLE)
// Do something
#endif
何かが定義されているかどうかを確認しようとしていますか?はいの場合、次のことを試すことができます。
_#ifndef SOME_VARIABLE
_
または
#if !defined(SOME_VARIABLE)
Appleドキュメンテーション( If-The C Preprocessor )は正しいものであり、これはCプリプロセッサステートメントが黎明期から続いている方法です。同じドキュメントでできることは、ゼロまたはゼロ以外の値に評価される式を作成し、それを使用することです。
TARGET_IPHONE_SIMULATOR
はプラットフォームに応じてTRUE
またはFALSE
として定義されるため、Meccanの答えは正しいので、式はゼロまたはゼロ以外の量のいずれかに評価されます。
一般に、これらのマクロ(#if
など)は、シンボルが定義されているかどうかに基づいて、包含または除外するために使用されます。その使用例では、プリプロセッサには#ifdef
と#ifndef
があり、これまで歴史的に最も重要なケースとして受け入れられてきたものをカバーしています。
また、これらのステートメントの主題は、(#define
を介して)プリプロセッサで定義された他のシンボルのみである可能性があるため、この制限は妥当です。