typedef enum BeNeLux
{
BELGIUM,
NETHERLANDS,
LUXEMBURG
} _ASSOCIATIONS_ BeNeLux;
当我尝试使用 C++ 编译器编译它时,我遇到了错误,但它似乎可以在 C 编译器中正常工作。所以这就是问题所在。是否可以在 C++ 中打包枚举,或者有人可以看到为什么我会收到错误消息?
错误是:
“在宣布比荷卢经济联盟后缺少分号”。
我知道,在检查和重新检查之后,那里肯定有一个分号,并且在其余代码所需的任何地方。
附录:
_PACKAGE_
只是一个例子。我正在重命名它。
_ASSOCIATIONS_
不是比荷卢经济联盟的一种:
#define _ASSOCIATIONS_ __attribute__((packed))
代码是 iffed,但只是为了确保它是 GNU C/C++。
#if defined (__GNUC__)
#define _ASSOCIATIONS_ __attribute__((packed))
#else
#define _ASSOCIATIONS_
这会导致问题吗?我认为(GNUC)适用于 C 和 C++
附录 2:
我什至试过
#ifdef __cplusplus
extern "C" {
#endif
typedef enum BeNeLux
{
BELGIUM,
NETHERLANDS,
LUXEMBURG
} _ASSOCIATIONS_ BeNeLux;
#ifdef __cplusplus
}
#endif
没有喜悦。任何人?
注意: -fshort-enums 是不可能的;寻找程序化解决方案。