2
なぜこれが動作しないのですか(それはアサートに失敗しています...実行したくないのですが)?OS固有の機能をテストするためにOSフラグを設定する
#define OS_MACOSX 0
#if defined(OS_MACOSX)
fructose_assert(1==2);
#endif
なぜこれが動作しないのですか(それはアサートに失敗しています...実行したくないのですが)?OS固有の機能をテストするためにOSフラグを設定する
#define OS_MACOSX 0
#if defined(OS_MACOSX)
fructose_assert(1==2);
#endif
誤ったテストを使用しているためです。
OS_MACOSX
ISは... 0
と定義されています。 がと定義されているかどうかを尋ねました。それはであれば代わりに掲載しを設定します。
#if OS_MACOSX
fructose_assert(1==2);
#endif
それがゼロに評価さ何かに定義された、またはすべてで定義されていない場合、#if
は、コードをスキップします。 0以外の値で、条件が満たされてコードがコンパイルされます。 Why do people use #ifdef for feature flag tests?
あなたは正しいです。ありがとう! – user3564870
あなたはそれが定義されているかどうかを確認、その後、何かを定義し、それが真の生成理由を不思議に思う:
は、この関連の質問を参照してください?私はなぜあなたが混乱しているかは分かりません。 –