有人可以請解釋這段代碼的輸出嗎?sizeof(struct)奇怪的輸出在C++
#include <iostream>
using namespace std;
struct Yo{
char sex;
int a;
};
int main() {
Yo c;
cout<<sizeof(c.sex);
cout<<endl<<sizeof(c.a);
cout<<endl<<sizeof(c);
return 0;
}
輸出:1 4 8
如何是結構8的大小?
這就是所謂的內存對齊。 – 2014-01-13 16:46:03
這就是結構填充是什麼! –
由於填充。你可以確定結構的大小,你應該使用'#pragma pack()'作爲[末尾](http://en.wikipedia.org/wiki/Data_structure_alignment#Data_structure_padding) – 2014-01-13 16:50:08