【发布时间】:2015-05-29 04:13:03
【问题描述】:
在库FreeImagePlus,FreeImage.h 中,有一个有趣的#define 似乎创建了一个typedef 和一个enum 同名:
#define FI_ENUM(x) typedef int x; enum x
这被预处理器扩展为如下代码:
typedef int FREE_IMAGE_FILTER;
enum FREE_IMAGE_FILTER {
FILTER_BOX = 0,
FILTER_BICUBIC = 1,
[...]
这是做什么的?拥有同名的typedef 和enum 是否合法?
而且enum 不兼容int 吗?为什么 FreeImage 会这样做?
【问题讨论】: