先说说我的理解 1机器字应该是8bit 那8byte机器字是不是64位机 这是我的困惑点
(前面困惑的点成立的情况下)如果是64位机 指针在64位机是8字节 int4字节 char 1字节 根据对齐规则
* | * | * | * | * | * | * | * |
---|---|---|---|---|---|---|---|
char | int | int | int | int |
存储格式不该是这样吗
8+8=16
结构体申请的内存以内部元素所占内存最大的为准
char*表示指针,占用内存是8个字节
char是字符型变量,占用1个字节
int是整型数据,占用4个字节
所以最终结构体也占用8个字节
问了别人 也查了一些资料 首先困惑就是机器字是8bytes 正常来说1机器字是8bit 也就是说这个机器应该是64bit的机器
在确认了这一点的情况下 64位机char1字节 指针8字节 int 4字节 那么此时根据字节对齐 整个结构体所占的内存应该是16字节;
抛开64位机不谈就算是32位机 char1字节 指针4字节 int 4字节 那么此时根据字节对齐 整个结构体所占的内存应该是12字节;
然后还是比较认可一位朋友的说法会不会是把union写成struct了 我个人比较认可这种说法 希望有大神能来解释解释吧