enum类型是带符号的还是无符号的?枚举的符号之间是否有所不同:C/C99/ANSI C/C++/C++ x/GNU C/GNU C99?
谢谢

最佳答案

枚举保证可以用整数表示,但是实际类型(及其符号)取决于实现。

您可以通过为枚举数之一赋予负值来强制枚举以有符号类型表示:

enum SignedEnum { a = -1 };

在C++ 0x中,可以显式指定枚举的基础类型:
enum ShortEnum : short { a };

(C++ 0x还增加了对范围枚举的支持)

为了完整起见,我将在《 The C Programming Language》第二版中将枚举器指定为具有int类型(第215页)。 K&R不是C标准,因此对于ISO C编译器而言不是规范性的,但是它确实早于ISO C标准,因此从历史的角度来看至少是有趣的。

关于c++ - C/C99/C++/C++ x/GNU C/GNU C99中的枚举的符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2579230/

10-12 14:50
查看更多