内存分配问题,为何会是这个结果呢?
源代码在这里。程序代码:
#include <stdio.h> #pragma pack(1) struct file_data { unsigned int day:5; unsigned int month:4; unsigned int year:7; }; union Data { unsigned short data; struct file_data fd; }; #pragma pack() int main() { union Data Hi; Hi.data = 11230; printf("%d/%d/%d\n", Hi.fd.year, Hi.fd.month, Hi.fd.day); return 0; }
为何输出的是21/14/30
谁能告诉我,这2个自己的数据在内存中是怎么保存的?