私は次のコードを持っています
#if defined(TESTING)
#define TEST_FAILED_IN_VMC(...) TestFailed(__FILE__, __LINE__, __VA_ARGS__)
#define TEST_FAILED_IN_UNIT_TEST(...) TestFailedInUnitTest(__VA_ARGS__)
#else
#define TEST_FAILED_IN_VMC(...)
#define TEST_FAILED_IN_UNIT_TEST(...)
#endif
と電話をかけるTEST_FAILED_IN_VMC(peripheral, testSuiteName, testName,
"Internal coding error; bad state (%d)", state);
コンパイラは、定義されていなくても、定義されていないことtestSuiteName
をコンパイルします。testName
#TESTING
[更新]コンパイラも言う"Error 3 implicit declaration of function 'TEST_FAILED_IN_VMC'
【更新】この線より下の部分は無視してください。問題は上にあります。ありがとう。
だから、私はこの[更新]を試してみましたelse
が#else
、それは反抗的ではないと言われてTESTING
います。では、なぜ上記のコードが機能しないのですか?
#if defined(TESTING)
#error "Testing is defined <<<<<<<<<<<<<<<<<<<<<<<<"
wf
else
#error "Testing is NOT defined <<<<<<<<<<<<<<<<<<"
eyh6
#endif
#ifdef TESTING
#error "Testing is defined @@"
ehye
else
#error "Testing is NOT defined @@"
5he567
#endif
#error "Sample error ###"
コンパイラが出した唯一のエラーはError 3 #error "Sample error ###"
何がうまくいかないのか分かりますか?(MicrosoftVisualStudioをベースにしたAtmelAVRStudio`。
多くの、多くの、他の多くの人#if defined
がうまく働いています...