我要我的VC++ 2008升級到VC++ 2010或2012年升級,我有一些問題之前:整數(x86)的最大大小是多少?
我的編譯器只支持最大
__int64
整數。在VC++ 2010,2012等版本中是否支持__int128
?我目前的編譯器不支持類似
_WIN64
或_WIN32
來檢查Windows平臺。但我懷疑_INTEGRAL_MAX_BITS
是另一種解決方案;如果它運行在Win32中,它將是64
,否則將是128
。這是真的嗎?
我要我的VC++ 2008升級到VC++ 2010或2012年升級,我有一些問題之前:整數(x86)的最大大小是多少?
我的編譯器只支持最大__int64
整數。在VC++ 2010,2012等版本中是否支持__int128
?
我目前的編譯器不支持類似_WIN64
或_WIN32
來檢查Windows平臺。但我懷疑_INTEGRAL_MAX_BITS
是另一種解決方案;如果它運行在Win32中,它將是64
,否則將是128
。這是真的嗎?
在C++標準有你想要的東西專用的部分,總之有<limits>
and the included methods是你的問題的解決方案。
編輯:我假設你想要某種標準化的支持,否則你應該只是指在線文檔爲你的編譯
對於所有你提到的編譯器,對存在的64位整數類型32位和64位目標。但是,沒有128位整數類型。因此,_INTEGRAL_MAX_BITS
對於所有列出的編譯器以及32位和64位目標都計算爲64。
您可以做的最好的可能是使用SSE2固有的__m128i
,但這取決於處理器上是否存在SSE2單元。但是你不需要升級就可以使用它。它也可以在VS2008中使用。
@xersi只是想知道列出的各種編譯器的功能。 –