我见过这样的enum
声明:
enum ProgrammingLanguage: unsigned char {
C = 0,
CPlusPlus,
Rust,
Java,
Javascript,
Python
};
这只为此类型分配一个字节。我的问题是,这是标准的C还是GCC扩展?如果我决定这样做,我是否需要担心可移植性?
这是标准的C
不,这不是 C 语言的一部分。
海湾合作委员会扩展?
不,这不是 C 语言的 GCC 扩展。
如果我决定这样做,我是否需要担心可移植性?
您需要担心使用任何 C 编译器编译此类代码。
这只是C++功能。
然后是macOS功能。在 C 文件中的 Xcode 中编译它有效
这是一个叮当的扩展。
附录A 6.7.2.2 将枚举定义为:
(6.7.2.2) enum-specifier:
enum identifier-opt { enumerator-list }
enum identifier-opt { enumerator-list,}
enum identifier