【发布时间】:2020-10-08 02:25:53
【问题描述】:
我见过像这样的enum 声明:
enum ProgrammingLanguage: unsigned char {
C = 0,
CPlusPlus,
Rust,
Java,
Javascript,
Python
};
这只会为这种类型分配一个字节。我的问题是,这是标准 C 还是 GCC 扩展?如果我决定这样做,是否需要担心便携性?
【问题讨论】:
-
这不在标准 C 中。它是 C++ 特性
-
@M.M 你确定吗?那将是一种耻辱。
-
我试过的任何 gcc 版本都不接受它
-
@M.M 那么这是 macOS 的功能。在 C 文件中的 Xcode 中编译它是可行的。
-
我猜你实际上是在使用 clang(试试
gcc -v)。一些 macOS 开发人员有一个绝妙的主意,将 gcc 别名为 clang
标签: c types enums enumeration portability