2013-11-28 3 views
0

C++ InterlockedIncrement 기능을 32 비트 및 64 비트 아키텍처 모두에 사용하는 가장 좋은 방법은 무엇입니까? (분리 된 기능이 있습니다)아키텍처 - 일반 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); 
); 

지금 당신은 무조건 32 및 64 비트 중 32 비트 또는 64 개 비트 변수에 InterlockedIncrement를 호출 할 수 있습니다 빌드.

+0

설명이 있습니다. – Reflection