I have include windows.h and want to use InterlockedAdd in vs2010 and compiles error “identifier not found”, but the InterlockedIncrement can work well. I try to use:
#include <intrin.h>
#pragma intrinsic(_InterlockedAdd)
and compiles error:
warning C4163: ‘_InterlockedAdd’ : not available as an intrinsic function
1>test10.cpp(107): error C3861: ‘InterlockedAdd’: identifier not found
What’s wrong with the code?
The
InterlockedAddfunction is only available on the Itanium platform. On x86 and x86-64 platforms you can useInterlockedExchangeAddinstead. This also adds a value to the target variable, but it returns the original value instead of the new value.