使用 -features=extensions 时,不完整的 enum 类型以前向声明处理。例如,以下是无效代码,如果使用 -features=extensions 选项,可对其进行编译。
typedef enum E F; // invalid, E is incomplete
如前所述,可以总是先包括 enum 类型的定义,然后再使用。