首先看下面一段代码:
#include <stdio.h>typedef int INT32;typedef unsigned char BYTE;typedef struct demo{ double s; BYTE b1; BYTE b2; INT32 i;}DEMO;int main(){ double i32; BYTE byte; DEMO d; PRintf ("%d, %d/n", sizeof(INT32), sizeof(i32)); printf ("%d, %d/n", sizeof(BYTE), sizeof(byte)); printf ("%d, %d/n", sizeof(DEMO), sizeof(d)); return 0;}
最后结构体变量字节大小是16,为什么呢?按照道理不是14吗?
这里就是内存对齐了,变量在内存中存放的时候是有一定规则的,
新闻热点
疑难解答