首页 > 解决方案 > 定义一个尚未定义的枚举类型的变量

问题描述

如果谈到结构和联合,我可以在函数范围之外定义这些类型之一的变量,而这些类型本身只被声明并且稍后要定义:

struct my_struct;
struct my_struct variable;
struct my_struct { int field_1; };

我使用clanggcc编译器,在这两种情况下,程序都是无警告地编译的。

但是,如果我尝试使用枚举类型,它只适用于clang

enum my_enum;
enum my_enum variable;
enum my_enum {CONST};

虽然gcc抛出错误storage size of 'variable' is not known

我想知道,为什么会这样?C 中的枚举类型有什么特别之处吗?

标签: cenums

解决方案


推荐阅读