InterlockedExchangeAdd 関数 (winnt.h)
2 つの 32 ビット値のアトミック加算を実行します。
64 ビット値を操作するには、InterlockedExchangeAdd64 関数を使用します。
構文
LONG InterlockedExchangeAdd(
[in, out] LONG volatile *Addend,
[in] LONG Value
);
パラメーター
[in, out] Addend
変数へのポインター。 この変数の値は、操作の結果に置き換えられます。
[in] Value
Addend パラメーターによって指される変数に追加される値。
戻り値
この関数は、Addend パラメーターの初期値を返します。
備考
この関数は、addendが指す値に
この関数の変数は、32 ビット境界に配置する必要があります。それ以外の場合、この関数はマルチプロセッサ x86 システムおよび x86 以外のシステムで予期しない動作をします。 _aligned_mallocを参照してください。
インターロックされた関数は、複数のスレッドによって共有される変数へのアクセスを同期するための簡単なメカニズムを提供します。 この関数は、他のインターロックされた関数の呼び出しに関してアトミックです。
この関数は、可能な限りコンパイラ組み込みを使用して実装されます。 詳細については、WinBase.h ヘッダー ファイルと _InterlockedExchangeAdd を参照してください。
この関数は、メモリ操作が順番に完了するように、完全なメモリ バリア (またはフェンス) を生成します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winnt.h (Windows.h を含む) |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
インタロックされた変数アクセス を
InterlockedCompareExchange の
InterlockedExchange の
InterlockedExchangeAdd64 の
InterlockedExchangeAddAcquire の
">InterlockedExchangeAddAcquire64
InterlockedExchangeAddNoFence の
InterlockedExchangeAddNoFence64
<a href="/previous-versions/windows/desktop/legacy/ms683605(v=vs.85)"。InterlockedExchangeAddRelease
InterlockedExchangeAddRelease64 の
InterlockedExchangeSubtract の