Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставьте встроенную поддержку компилятора функции 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) компилятором