C++ 关于C+中Int数据类型的混淆+;
我知道int是一个4字节的数据类型。由于它只占用4个字节的内存,为什么编译器要预先分配或初始化8个字节的内存C++ 关于C+中Int数据类型的混淆+;,c++,memory,allocation,C++,Memory,Allocation,我知道int是一个4字节的数据类型。由于它只占用4个字节的内存,为什么编译器要预先分配或初始化8个字节的内存 a的大小是什么?我猜不是8字节。是的,正如我所说,我知道是4字节。这是一个Int。我的问题是,为什么编译器在我进入代码(F10)之前用CC填充8字节的数据?为什么不?它只是用CC标记堆栈,大概是为了检测未初始化的值,所以只要它至少执行sizeof(a)就可以了。试试intx[32],看看你能得到多少。我想我应该把我的问题说清楚一点。为什么编译器要填充8字节的数据,而它知道Int只有4个字
a的大小是什么?我猜不是8字节。是的,正如我所说,我知道是4字节。这是一个Int。我的问题是,为什么编译器在我进入代码(F10)之前用CC填充8字节的数据?为什么不?它只是用
CC
标记堆栈,大概是为了检测未初始化的值,所以只要它至少执行sizeof(a)
就可以了。试试intx[32]
,看看你能得到多少。我想我应该把我的问题说清楚一点。为什么编译器要填充8字节的数据,而它知道Int只有4个字节,而不是更多?这可能不重要,但我要问一个非常特定于编译器的问题。我只是想知道为什么编译器在初始化Int(4字节)数据类型时要填充8字节的数据。如果你不知道这个问题的具体答案,那不是问题;说为什么重要并不能真正回答我的问题。