【发布时间】:2012-08-12 13:41:26
【问题描述】:
说,我有以下结构:
typedef struct my_struct{
unsigned long a;
unsigned long b;
char* c;
unsigned int d1 :1;
unsigned int d2 :4;
unsigned int d3 :4;
unsigned int d4 :23;
} my_type, *p_type;
字段d3 目前由#defines 定义,从0x00 到0x0D。
其实d3是一个枚举。所以很想继续替换
unsigned int d3 :4;
通过
my_enum d3 :4;
这是安全/允许的吗?
代码必须用各种编译
- 编译器(GCC、Visual Studio、嵌入式)
- 平台(Win32、Linux、嵌入式)
- 配置(编译为 C,编译为 C++)
显然,我可以保留 d3 的定义并在我的代码中使用枚举,将其分配给 d3 等等,但这不适用于 C++。
【问题讨论】:
-
你用多少个编译器试过这个?
标签: c++ c enums bit-fields