我有以下代码
#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'
[更新]请忽略此行下方的非常。问题在上面。谢谢。
所以,我试过这个 [Update]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 ###"
知道出了什么问题吗?(Atmel AVR Studio,它基于 Microsoft Visual Studio`。
许多,许多,许多其他#if defined
的工作都很好......