_InterlockedIncrement の組み込み関数
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]
Microsoft 固有の仕様 →
Win32 Windows SDK InterlockedIncrement の関数にはコンパイラの組み込みサポートを提供します。
long _InterlockedIncrement(
long * lpAddend
);
long _InterlockedIncrement_acq(
long * lpAddend
);
long _InterlockedIncrement_rel(
long * lpAddend
);
short _InterlockedIncrement16(
short * lpAddend
);
short _InterlockedIncrement16_acq(
short * lpAddend
);
short _InterlockedIncrement16_rel(
short * lpAddend
);
__int64 _InterlockedIncrement64(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_acq(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_rel(
__int64 * lpAddend
);
パラメーター
- [入力、出力] lpAddend
インクリメントする変数へのポインター。
戻り値
Windows 98Windows NT 4.0 以降 : 戻り値はインクリメントされた値です。
Windows 95Windows NT 3.51 以前のバージョン : 操作の結果がの場合戻り値はになります。 演算の結果は未満の場合戻り値は負になりますが必ずしも結果と同じです。 操作の結果がゼロより大きい場合戻り値は正の数ですが必ずしも結果と同じです。
必要条件
組み込み |
アーキテクチャ |
---|---|
_InterlockedIncrement |
x86IPFx64 |
_InterlockedIncrement_acq |
IPF |
_InterlockedIncrement_rel |
IPF |
_InterlockedIncrement16 |
x86IPFx64 |
_InterlockedIncrement16_acq |
IPF |
_InterlockedIncrement16_rel |
IPF |
_InterlockedIncrement64 |
はx64 |
_InterlockedIncrement64_acq |
IPF |
_InterlockedIncrement64_rel |
IPF |
ヘッダー ファイル <intrin.h>
解説
リリースではセマンティクス使用することが含まれるかおよびプロセッサ固有または取得したりデータ型に基づいて異なる _InterlockedIncrement にいくつかのバリエーションがあります。
_InterlockedIncrement の関数が 32 ビット整数値を操作しますが**_InterlockedIncrement16** は16 ビットの整数値を操作し**_InterlockedIncrement64** は64 ビットの整数値を操作します。
_InterlockedIncrement_acq _InterlockedIncrement16_acq と _InterlockedIncrement64_acq の組み込み関数は _acq のサフィックスが操作の対応する関数が取得したりのセマンティクスを場合と同じです。クリティカル セクションに入るとき。
_InterlockedIncrement_rel _InterlockedIncrement16_rel と _InterlockedIncrement64_rel の組み込み関数は _rel のサフィックスが操作の対応する関数を使用すると便利リリースのセマンティクスは同じです。クリティカル セクションを離れる場合。
lpAddend のパラメーターが指す変数は32 ビット境界上に配置する必要があります。; それ以外の場合この関数はマルチプロセッサ システムで x86 および非 x86 オペレーティング システム上で失敗します。
これらの関数は読み書き可能メモリ バリアとして機能します。 詳細については_ReadWriteBarrier を参照してください。
Win32 関数は Wdm.h または Ntddk.h で宣言されています。
これらのルーチンは組み込みとしてのみ使用できます。
使用例
_InterlockedIncrement を使用する方法の例については _InterlockedDecrement を参照してください。