_InterlockedIncrement встроенные функции

Предоставьте встроенную поддержку компилятора функции InterlockedIncrement пакета SDK Для Win32 Windows. Встроенные _InterlockedIncrement функции относятся к корпорации Майкрософт.

Синтаксис

long _InterlockedIncrement(
   long volatile * lpAddend
);
long _InterlockedIncrement_acq(
   long volatile * lpAddend
);
long _InterlockedIncrement_rel(
   long volatile * lpAddend
);
long _InterlockedIncrement_nf(
   long volatile * lpAddend
);
short _InterlockedIncrement16(
   short volatile * lpAddend
);
short _InterlockedIncrement16_acq(
   short volatile * lpAddend
);
short _InterlockedIncrement16_rel(
   short volatile * lpAddend
);
short _InterlockedIncrement16_nf (
   short volatile * lpAddend
);
__int64 _InterlockedIncrement64(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_acq(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_rel(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_nf(
   __int64 volatile * lpAddend
);

Параметры

lpAddend
[in, out] Указатель на переменную для увеличения.

Возвращаемое значение

Возвращаемое значение, полученное после увеличения.

Требования

Intrinsic Архитектура Заголовок
_InterlockedIncrement, _InterlockedIncrement16 x86, ARM, x64, ARM64 <intrin.h>
_InterlockedIncrement64 ARM, x64, ARM64 <intrin.h>
_InterlockedIncrement_acq, _InterlockedIncrement_rel, _InterlockedIncrement_nf, _InterlockedIncrement16_acq, _InterlockedIncrement16_rel, _InterlockedIncrement16_nf, _InterlockedIncrement64_acq, _InterlockedIncrement64_rel, _InterlockedIncrement64_nf ARM, ARM64 <intrin.h>

Замечания

Существуют несколько вариантов _InterlockedIncrement, они различаются в зависимости от типов данных, которые включают, и от того, используется ли семантика получения или освобождения конкретного процессора.

_InterlockedIncrement Хотя функция работает с 32-разрядными целыми значениями, _InterlockedIncrement16 работает с 16-разрядными целыми значениями и _InterlockedIncrement64 работает с 64-разрядными целыми значениями.

На платформах ARM используйте встроенные функции с суффиксами _acq и _rel, если нужно получить и освободить семантику, например в начале и конце критической секции. Встроенный суффикс _nf ("без забора") не выступает в качестве барьера памяти.

Переменная, на который указывает параметр lpAddend, должна быть выровнена по границе 32 разрядов; в противном случае эта функция не выполняется на многопроцессорных системах x86 и любой системе не-x86. Дополнительные сведения см. в разделе "Выравнивание".

Функция Win32 объявляется в Wdm.h или Ntddk.h.

Эти процедуры доступны только как встроенные объекты.

Пример

Пример использования _InterlockedIncrementсм. в _InterlockedDecrement.

См. также

Встроенные компоненты компилятора
Ключевые слова
Конфликты с 32-разрядным (x86) компилятором