2013-11-28 26 views
0

將32位和64位架構通用的C++ InterlockedIncrement功能的最佳方法是什麼? (有分開的功能)針對32/64位的架構通用InterlockedIncrement

有沒有比使用#if _W64預處理器命令更好的方法?

+3

您可以使用C++ 11原子類型。 –

+1

你應該問的問題是爲什麼你的32位和64位版本使用不同的整數類型。也許你可以顯示你想要操作的變量的聲明。 –

+0

您可以使用C預處理器粘貼操作符構建一個解析您的系統的正確名稱的宏。 – RichardPlunkett

回答

0

最簡單的解決方案,因爲您使用C++:

inline LONGLONG __cdecl InterlockedIncrement(LONGLONG volatile *Addend) 
{ 
    return InterlockedIncrement64(Addend); 
); 

現在可以無條件呼叫InterlockedIncrement在32位或64位的變量,在32個和64位的基礎之上。

+0

我可以爲此解釋嗎? – Reflection