2013-11-28 8 views
0

Каков наилучший способ использования функций Clock InterlockedIncrement, общих для 32-разрядных и 64-разрядных архитектур? (Есть отдельные функции)Архитектура-общий InterlockedIncrement для 32/64-разрядных

Есть ли лучший способ, чем использование команды препроцессора ?

+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

 Смежные вопросы

  • Нет связанных вопросов^_^