我正在创建一组枚举值,但我需要每个枚举值的宽度为64位.如果我没记错的话,枚举的大小通常与int相同;但我想我在某个地方读到过(至少在GCC中)编译器可以使枚举具有保存其值所需的任何宽度.那么,有可能有一个64位宽的枚举吗?

推荐答案

enum只能保证足够大,可以容纳int个值.编译器可以根据定义的枚举常量自由 Select 实际使用的类型,因此,如果可以表示您定义的值,编译器可以 Select 较小的类型.如果您需要不适合int的枚举常量,则需要使用特定于编译器的扩展来实现.

C++相关问答推荐

如何在C中的空指针函数中传递浮点值

初始化char数组-用于初始化数组的字符串是否除了存储数组的位置之外单独存储在内存中

C限制限定符是否可以通过指针传递?

如何跨平台处理UTF-16字符串?

GTK3按钮信号错误

防止规范模式在C++中 echo 特殊字符

在C中访问数组中的特定值

OpenSSL:如何将吊销列表与SSL_CTX_LOAD_VERIFY_LOCATIONS一起使用?

如何用C语言为CLI应用程序编写按键检测系统?

C11/C17标准允许编译器清除复合文字内存吗?

C语言中奇怪的输出打印数组

在C程序中使用Beaglebone Black UART的问题

程序对大输入给出错误答案

如何使用calloc和snprintf

为什么我在我的代码中得到错误和退出代码-1073741819(0xC0000005),但如果我添加了一个不相关的打印语句,它仍然有效?

try 判断长整数是否为素数

C程序printf在getchar while循环后不工作

从系统派生线程调用CRT

free后内存泄漏?

为什么创建局部变量的指针需要过程在堆栈上分配空间?