2013-05-21 95 views
1

我要我的VC++ 2008升級到VC++ 2010或2012年升級,我有一些問題之前:整數(x86)的最大大小是多少?

  • 我的編譯器只支持最大__int64整數。在VC++ 2010,2012等版本中是否支持__int128

  • 我目前的編譯器不支持類似_WIN64_WIN32來檢查Windows平臺。但我懷疑_INTEGRAL_MAX_BITS是另一種解決方案;如果它運行在Win32中,它將是64,否則將是128。這是真的嗎?

回答

1

在C++標準有你想要的東西專用的部分,總之有<limits> and the included methods是你的問題的解決方案。

編輯:我假設你想要某種標準化的支持,否則你應該只是指在線文檔爲你的編譯

+0

@xersi只是想知道列出的各種編譯器的功能。 –

1

對於所有你提到的編譯器,對存在的64位整數類型32位和64位目標。但是,沒有128位整數類型。因此,_INTEGRAL_MAX_BITS對於所有列出的編譯器以及32位和64位目標都計算爲64。

您可以做的最好的可能是使用SSE2固有的__m128i,但這取決於處理器上是否存在SSE2單元。但是你不需要升級就可以使用它。它也可以在VS2008中使用。

相關問題