首页 > 解决方案 > 是否将类型分配给枚举标准 C?

问题描述

我见过enum这样的声明:

enum ProgrammingLanguage: unsigned char {
    C = 0,
    CPlusPlus,
    Rust,
    Java,
    Javascript,
    Python
};

这仅为此类型分配一个字节。我的问题是,这是标准 C 还是 GCC 扩展?如果我决定这样做,我是否需要担心可移植性?

标签: ctypesenumsenumerationportability

解决方案


这个标准是C吗

不,这不是 C 语言的一部分。

GCC 扩展?

不,这不是 C 语言中的 GCC 扩展。

如果我决定这样做,我是否需要担心可移植性?

您需要担心使用任何 C 编译器编译此类代码。

这完全是 C++ 功能。

然后它是一个 macOS 功能。在 C 文件中的 Xcode 中编译它可以工作

这是一个clang 扩展


推荐阅读