_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] インクリメントする変数を指すポインター。

戻り値

戻り値は、インクリメントして生成された値です。

必要条件

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 ("no fence") サフィックスの付いたものは、メモリ バリアとして機能しません。

lpAddend パラメーターが指す変数は 32 ビットの境界に合わせて調整する必要があります。そのようにしない場合、この関数はマルチプロセッサの x86 システムおよび x 86 システム以外のシステムで失敗します。 詳細については、align に関するページを参照してください。

Win32 関数は Wdm.h または Ntddk.h で宣言されています。

これらのルーチンは、組み込みとしてのみ使用できます。

_InterlockedIncrement の使用例については、_InterlockedDecrement に関するページを参照してください。

関連項目

コンパイラの組み込み
キーワード
x86 コンパイラとの競合