_InterlockedCompareExchange64 не работает должным образом, когда определено

Почему код ниже не работает правильно, когда _InterlockedCompareExchange64
используется как определение? Эта инструкция сравнивает пункт назначения, который является 1-м параметром, с 3-м параметром, и, если они равны, 2-й параметр копируется обратно в пункт назначения, который является 1-м параметром.

#include "stdafx.h"#include "Windows.h"
#define ATOMIC_CAS(ptr, oldval, newval) _InterlockedCompareExchange64(ptr, newval, oldval)

int main()
{

__int64 tt = 20;
ATOMIC_CAS(&tt, 10, 20);
//_InterlockedCompareExchange64(&tt, 10, 20);return 0;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]