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命令:
似乎它正在按64位进行编译。
如果是这样,这就是我注意到的:
这个准确吗?如果是的话,这是否意味着我必须声明一个long long才能在Windows中使用8字节的“like”整数? (意味着我需要避免出现 double 浮点数)。
(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 long
或double
。