c – 运算符’==’没有左操作数
发布时间:2020-12-16 09:53:25 所属栏目:百科 来源:网络整理
导读:鉴于: #if defined(TESTING) #if (TESTING == UNIT_TEST) StateStateTypeEnum,EventTypeEnum::_isIgnoredEvent = false; StateStateTypeEnum,EventTypeEnum::_isInvalidEvent = false; #endif#endif 定义了TESTING,就像UNIT_TEST和TESTING == UNIT_TEST一样
鉴于:
#if defined(TESTING) #if (TESTING == UNIT_TEST) State<StateTypeEnum,EventTypeEnum>::_isIgnoredEvent = false; State<StateTypeEnum,EventTypeEnum>::_isInvalidEvent = false; #endif #endif 定义了TESTING,就像UNIT_TEST和TESTING == UNIT_TEST一样,为什么GCC说 ../testing/fsm/../../fsm/h/state.h:207:17: error: operator '==' has no left operand #if (TESTING == UNIT_TEST) ^ 解决方法
您似乎只是定义了TESTING,而没有使用值(内联)或作为编译器命令行的一部分来定义它.
#define TESTING 它被定义,并且#if定义的测试为true,但是比较将不起作用,因为它的宏替换值不是(或错误的类型). 但是,如果给它一个值,则代码可以正常工作. #define TESTING 1 #define UNIT_TEST 1 #if defined(TESTING) #if (TESTING == UNIT_TEST) cout << "Unit test"; #endif #endif (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |