_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) компилятором