Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.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
为什么在C++中编译64位时会得到32位的溢出? 所以,我决定测试一个新的C++海龟风格的图形库。我决定通过制作斐波那契螺旋来测试它。然而,在运行程序时,它会停在中间。我检查了发生了什么,斐波那契值已反转为-2147483647,就好像它是用32位编译的一样。有人能帮忙吗?我在Windows上用g++编译了它。 注意:我使用了一个向量来存储这些值。 这是我的密码: //包括和名称空间 包括Cturtle.hpp 包括 名称空间ct=cturtle; 向量斐波那契={1,2}//该向量存储fib序列 ct::TurtleScreen scr//创建一个新屏幕 乌龟//在屏幕上创建一个新的海龟 int main{ turtle.speedct::TS_faster;//将海龟的速度设置为max whiletrue{ forint i=0;i_C++_G++_Integer Overflow - Fatal编程技术网

为什么在C++中编译64位时会得到32位的溢出? 所以,我决定测试一个新的C++海龟风格的图形库。我决定通过制作斐波那契螺旋来测试它。然而,在运行程序时,它会停在中间。我检查了发生了什么,斐波那契值已反转为-2147483647,就好像它是用32位编译的一样。有人能帮忙吗?我在Windows上用g++编译了它。 注意:我使用了一个向量来存储这些值。 这是我的密码: //包括和名称空间 包括Cturtle.hpp 包括 名称空间ct=cturtle; 向量斐波那契={1,2}//该向量存储fib序列 ct::TurtleScreen scr//创建一个新屏幕 乌龟//在屏幕上创建一个新的海龟 int main{ turtle.speedct::TS_faster;//将海龟的速度设置为max whiletrue{ forint i=0;i

为什么在C++中编译64位时会得到32位的溢出? 所以,我决定测试一个新的C++海龟风格的图形库。我决定通过制作斐波那契螺旋来测试它。然而,在运行程序时,它会停在中间。我检查了发生了什么,斐波那契值已反转为-2147483647,就好像它是用32位编译的一样。有人能帮忙吗?我在Windows上用g++编译了它。 注意:我使用了一个向量来存储这些值。 这是我的密码: //包括和名称空间 包括Cturtle.hpp 包括 名称空间ct=cturtle; 向量斐波那契={1,2}//该向量存储fib序列 ct::TurtleScreen scr//创建一个新屏幕 乌龟//在屏幕上创建一个新的海龟 int main{ turtle.speedct::TS_faster;//将海龟的速度设置为max whiletrue{ forint i=0;i,c++,g++,integer-overflow,C++,G++,Integer Overflow,MinGW使用MSVC友好的LLP64 在LLP64中,int和long int都是32位,与平台位数32/64位无关 要获取64位数据类型,请使用long long或int64\t e、 g.std::vector.还有这里:forlong long i=0;..仅仅因为编译为64位并不意味着所有数据类型都自动为64位宽,也许这回答了您的问题:。因此,它不起作用。下面是我的代码:long int只能保证能够表示-2147483547到2147483547范围内与32位一致的值-位类型。生成64

MinGW使用MSVC友好的LLP64

在LLP64中,int和long int都是32位,与平台位数32/64位无关

要获取64位数据类型,请使用long long或int64\t


e、 g.std::vector.还有这里:forlong long i=0;..

仅仅因为编译为64位并不意味着所有数据类型都自动为64位宽,也许这回答了您的问题:。因此,它不起作用。下面是我的代码:long int只能保证能够表示-2147483547到2147483547范围内与32位一致的值-位类型。生成64位会影响程序可用的可寻址内存量的上限。它与整数类型的大小无关。实际上,64位编译器仍然支持32位长的int类型在实践中并不少见。