x86&;x64处理器 我们在C++程序中定义了3个变量 INTA 字符b INTC 这些处理器在x86和x64处理器中占用的内存是多少

x86&;x64处理器 我们在C++程序中定义了3个变量 INTA 字符b INTC 这些处理器在x86和x64处理器中占用的内存是多少,c++,64-bit,C++,64 Bit,对于32位系统,数据模型标准为ILP32-int、long、ptr和off\t的大小均为32位(4字节) 对于64位系统,标准为LP64(长指针64)—int的大小为32位。long、ptr和off\t的大小都是64位(8字节)。在这两种情况下,Char都是1字节。您可能会得到关于数据模型的详细讨论。我非常怀疑是否有任何标准要求char变量只占用一个字节;char数组应该每个元素只需要一个字节。@d抱歉,我没有得到您的关注。在ILP32和LP64中,Char数据类型的大小为8位。在LP64中,只

对于32位系统,数据模型标准为ILP32-int、long、ptr和off\t的大小均为32位(4字节)


对于64位系统,标准为LP64(长指针64)—int的大小为32位。long、ptr和off\t的大小都是64位(8字节)。在这两种情况下,Char都是1字节。您可能会得到关于数据模型的详细讨论。

我非常怀疑是否有任何标准要求
char
变量只占用一个字节;
char
数组应该每个元素只需要一个字节。@d抱歉,我没有得到您的关注。在ILP32和LP64中,Char数据类型的大小为8位。在LP64中,只有长字符和指针改变大小;其他数据类型的大小与ILP32模型中的相同。这两种数据类型都没有特别说明
char
char
变量(与数组元素或
struct
字段相反)似乎最有可能表示为一个完整的32位字,除非它在某些SIMD操作中完全消失。变量(无论是全局变量还是堆栈上的变量)都可以用各种方式表示,因为没有远程标准的方法可以找到关于这种表示的任何信息。说到C堆栈,请阅读,因为它很酷。