0
我在這裏有一個32位的C++程序,並且出於好奇而檢查反彙編。我有以下結構:簡單的結構對齊/填充問題
struct Blah
{
char foo;
std::string bar;
};
當訪問blah->吧,我注意到以下幾點:
; ... address of blah is in eax
003A227B add eax,4
所以我的問題是,爲什麼需要4被添加到blah
的地址得到bar
?我會理解3,因爲char
是1個字節,這將使一個不錯的第4輪...
是的,基本上就是這樣。 –
它將它添加到結構的開始,而不是結束foo,這就是爲什麼它是4而不是3。 – Joe
啊,杜。發佈作爲答案,我會接受它。 –