我正在尝试将 512 个字节写为无符号字符,但将它们作为结构中的字段读取。下面是我想出的工会。
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 标志没有区别。
有人可以阐明我所缺少的吗?