我想使用下面的#ifdef
。但我不确定它是否合适。因为我从编译器中获取错误。它像undefined identifier ENUM1
一样。你有没有像这样使用#ifdef
。 ???
typedef enum
{
#ifdef DEFINITION1
ENUM1,
#endif
#ifdef DEFINITION2
ENUM2,
#endif
#ifdef DEFINITION3
ENUM3
#endif
}teSomething;
感谢您的帮助...
答案 0 :(得分:0)
您的代码编译得很好:https://godbolt.org/g/dRaR85
如果您想使用ENUM2
,例如,您当然需要定义DEFINITION2
,如果您想使用ENUM3
,则必须定义DEFINITION3
。因为否则#ifdef
将永远为假,并且永远不会定义ENUM。
我从来没有像这样使用#ifdef
,但我已经这样做了:
#ifdef VULKAN
enum Format{
RGB = VK_RGB
};
#elif DIRECTX
enum Format{
RGB = DX12_RGB
};
#else
enum Format { // Empty enum for safety reasons.
};
#endif