我想寫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