_InterlockedIncrement
內部函數
提供 Win32 Windows SDK InterlockedIncrement 函式的編譯程式內建支援。 內部 _InterlockedIncrement
函數Microsoft 特定。
語法
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]要遞增之變數的指標。
傳回值
傳回值是所產生的遞增值。
需求
內建 | 架構 | 頁首 |
---|---|---|
_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。