c++ - 这是低效的吗?

标签 c++ enums int

Extending这个问题,我想使用我的枚举值,因为它们“应该”是,

#include <stdio.h>
enum E{ A, B, C } ;

#define inc(enVal) (*((int*)&enVal))++

int main()
{
  E t = A ;
  inc( t ) ;
  printf( "t %d\n", t ) ;
}

现在,嗯,t 是枚举类型 E 的变量,我有一个宏 inc 可以增加 t 的值1,

那么这个宏(可能还有其他类似的用于标志检查的宏)是否会比仅使用 int t 效率低得多?

最佳答案

不,它不会降低效率。然而,这将是令人难以置信的、可怕的、错误的。请永远不要。

哦,特别是因为枚举的支持类型是未定义的,而且在某些编译器上它们实际上可能被编译为小于 int 的大小。

关于c++ - 这是低效的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310551/

相关文章:

c++ - 为什么我的 token 返回 NULL,我该如何修复它?(c++)

objective-c - Typedef 枚举 Objective-C

c++ - 枚举元素定义?

ios - 自定义 HealthKit HKQuantityType 标识符

c# - 错误 : is a 'field' but is used like a 'type' c#

c++ - 创建一个简单的可移植位掩码并使用它

c++ - 提升条件互斥体性能不佳

c++ - 在 C++ 中从多个矩阵创建一个矩阵

java - 方法返回类型

c - 在 C 中将数字分配给 char 变量?