内存分配问题,为何会是这个结果呢?
源代码在这里。
程序代码:
#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个自己的数据在内存中是怎么保存的?










