Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么int的大小在c++;在64位机器上。还有,gcc的任何版本都支持8字节整数吗? 为什么C++中的int值不能有8字节的大小? 我知道Linux和Mac中的long是8字节。 还有没有任何编译器的int大小为8_C++_Int_Sizeof - Fatal编程技术网

为什么int的大小在c++;在64位机器上。还有,gcc的任何版本都支持8字节整数吗? 为什么C++中的int值不能有8字节的大小? 我知道Linux和Mac中的long是8字节。 还有没有任何编译器的int大小为8

为什么int的大小在c++;在64位机器上。还有,gcc的任何版本都支持8字节整数吗? 为什么C++中的int值不能有8字节的大小? 我知道Linux和Mac中的long是8字节。 还有没有任何编译器的int大小为8,c++,int,sizeof,C++,Int,Sizeof,我尝试搜索int大小为8字节的GCC编译器,但找不到任何与之相关的内容。没有什么能阻止编译器使用8字节int,除了它可能会破坏成吨的现有代码这一事实 在过去20年左右的时间里,人们一直认为int的长度为4字节(至少在x86和amd64 CPU上)。在C++标准下,改变 int 的大小将是完全合法的,它也会破坏大量的旧代码,这些代码依赖于代码的大小,例如“代码< INT/C>”。破坏人们的代码并不是说服他们继续使用你的编译器的好方法,因此编译器制造商倾向于使编译器的行为符合人们的期望,即使这种行为

我尝试搜索int大小为8字节的GCC编译器,但找不到任何与之相关的内容。

没有什么能阻止编译器使用8字节
int
,除了它可能会破坏成吨的现有代码这一事实


在过去20年左右的时间里,人们一直认为
int
的长度为4字节(至少在x86和amd64 CPU上)。在C++标准下,改变<代码> int 的大小将是完全合法的,它也会破坏大量的旧代码,这些代码依赖于代码的大小,例如“代码< INT/C>”。破坏人们的代码并不是说服他们继续使用你的编译器的好方法,因此编译器制造商倾向于使编译器的行为符合人们的期望,即使这种行为不受语言标准的约束。

我认为你的问题可以通过a)正确的标点符号和语法以及b)演示
sizeof(int)来改进
在Mac和Linux上显示
8
,而不是在其他编译器上显示8。可能重复的
#包括
,并使用
uint64\u t
表示8字节的int。因此,可以安全地假设int的范围始终是-2147483648到2147483647吗?@jas否。我的观点是,标准没有指定int的大小
int
,但编译器会尽其所能避免破坏遗留代码。对于新代码,如果需要特定的大小,请使用固定宽度类型(
int32\u t
uint64\u t
,等等)。我知道了。我现在明白了。谢谢你的回复。