在库FreeImagePlus中FreeImage.h,有一个有趣#define的东西似乎创建了 atypedef和 anenum同名:
#define FI_ENUM(x) typedef int x; enum x
这由预处理器扩展为如下代码:
typedef int FREE_IMAGE_FILTER;
enum FREE_IMAGE_FILTER {
FILTER_BOX = 0,
FILTER_BICUBIC = 1,
[...]
这是做什么的?typedefa和 anenum同名是否合法?而且不enum兼容int吗?为什么 FreeImage 会这样做?