gpt4 book ai didi

c++ - 枚举值的编译器支持

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:46 30 4
gpt4 key购买 nike

给定一个像这样声明的enum:

enum {
A,
B,
C,
D
};

引用 C++11 标准的第 7.2 节,一般编译器支持什么?具体来说,这段摘自 § 7.2.2 的内容:

If the first enumerator has no initializer, the value of the corresponding constant is zero. An enumerator-definition without an initializer gives the enumerator the value obtained by increasing the value of the previous enumerator by one.

我能否期望常见的现代编译器(GCC、Intel、Clang、最新版本的 CL、其他)给出相同的结果,即 A = 0B = 1C = 2D = 3

最佳答案

您引用的规则在 C++11 中并不新鲜。它是 C++03、C++98、C11、C99 和 C89 的一部分。这条规则在这些语言被标准化之前就存在了。 Java 和 C# 都通过它们的枚举继承了这种行为。

是的,编译器支持这部分语言。就像它们支持 ifswitch#defineint 和其他基本语言结构.

我们不是在谈论 r 值引用或 lambda 或其他东西。这是当今许多程序员甚至出生之前的核心内容。

关于c++ - 枚举值的编译器支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11789434/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com