我想写512字节作为无符号字符,但阅读它们作为结构中的字段。下面是我提出的工会。reinterpret_cast /类型双关联功能在C与工会
typedef union {
unsigned char buffer[512]; //512 bytes
struct {
unsigned char a[446];
struct part b[4]; //sizeof(part) = 16
unsigned char c[2];
}parsed; //446 + 4*16 + 2 = 512 bytes
}tbl;
我可以写入缓冲正常,但是从a或b阅读或c给予0 - 我用gcc - 一个64位的Linux机器上 - 没有-m32标志和/没有区别。
有人可以抛出一些光我失踪了吗?
填写'union'字段并使用另一个是未定义的行为。 – vonbrand 2013-02-24 03:19:29