This question already has answers here:
What is the bit size of long on 64-bit Windows?

(7个答案)


6年前关闭。




我使用Microsoft Visual Studio 2012作为我的IDE环境。显然,我的机器运行的是Windows 7 x64,并且我正在尝试开发64位程序。

但是请注意,该编译器是Nvidia的nvcc(我已验证我下载了64位版本)。

为了详细起见,这是Visual Studio打印出的compile命令:
 D:..."C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\bin\nvcc.exe" -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64"  -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include"  -G   --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile   -g   -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd  " -o x64\Debug\kernel.cu.obj "...kernel.cu" -clean

似乎它正在按64位进行编译。

如果是这样,这就是我注意到的:
When compiled to run on a Windows platform...

(1) sizeof(int) == 4
(2) sizeof(long) == 4 //Where 1 and 2 are true regardless of platform, x86 or x64
(3) sizeof(long long) == 8

这个准确吗?如果是的话,这是否意味着我必须声明一个long long才能在Windows中使用8字节的“like”整数? (意味着我需要避免出现 double 浮点数)。

最佳答案

是的,MSVC中的整数是4个字节。有关MSVC大小的详细信息,请参见this article

对于8个字节的数字,请使用long longdouble

10-04 21:18
查看更多