【发布时间】:2016-03-11 07:19:06
【问题描述】:
如何在C中访问整个结构成员。意思是我想获取结构中变量的所有数据。
struct data
{
char a:1;
char b:2;
char c:3;
char d:1;
} arr;
我可以使用 .操作员。但我需要访问该结构中的所有成员。请告诉我该怎么做。
【问题讨论】:
-
首先,检查并理解严格的别名规则 stackoverflow.com/questions/98650/… 。然后,你可以看看unions。然后,试着让自己熟悉编译器中的结构成员对齐,可能还有术语packed结构。
-
你应该首先避免位字段,它们不安全且不可移植。请改用位掩码和按位运算符。
-
用 4 位变量合并它们。
-
您为什么不直接使用
arr变量并相信编译器会自己进行优化?例如。struct data arr2 = arr;
标签: c data-structures bit-manipulation bit-fields