【发布时间】:2018-04-23 14:26:33
【问题描述】:
我正在尝试定义一个宏 GCC_447_OR_LESS(如下),我可以用它来检查它,而不是使用一个又大又丑的宏
#ifdef __linux__
// Test for GCC 4.4.7 or less
#if __GNUC__ < 4 || \
__GNUC__ == 4 && ( __GNUC_MINOR__ < 4 || \
( __GNUC_MINOR__ == 4 && __GNUC_PATCHLEVEL__ <= 7 ) ) \
#define GCC_447_OR_LESS
#endif
#endif
但是我得到了错误
error: missing binary operator before token "#"
#define GCC_447_OR_LESS
^
我无法解释发生了什么。 #define 不能像我使用的那样在#if 中使用吗?
【问题讨论】:
-
删除
( __GNUC_MINOR__ == 4 && __GNUC_PATCHLEVEL__ <= 7 ) )行中的最后一个“\” -
哇!谢谢@Raxvan
标签: c++ c-preprocessor