_InterlockedExchangeAdd の組み込み関数

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]

Microsoft 固有の仕様 →

Win32 Windows SDK _InterlockedExchangeAdd の組み込み関数 の関数にはコンパイラの組み込みサポートを提供します。

long _InterlockedExchangeAdd(
   long volatile * Addend,
   long Value
);
long _InterlockedExchangeAdd_acq(
   long volatile * Addend,
   long Value
);
long _InterlockedExchangeAdd_rel(
   long volatile * Addend,
   long Value
);
__int64 _InterlockedExchangeAdd64(
   __int64 volatile * Addend,
   __int64 Value
);
__int64 _InterlockedExchangeAdd64_acq(
   __int64 volatile * Addend,
   __int64 Value
);
__int64 _InterlockedExchangeAdd64_rel(
   __int64 volatile * Addend,
   __int64 Value
);

パラメーター

  • [入力、出力] Addend
    に追加する値 ; 加算結果に置き換えられます。

  • [入力] Value
    追加する値。

戻り値

戻り値は Addend のパラメーターが指す変数の初期値です。

必要条件

組み込み

アーキテクチャ

_InterlockedExchangeAdd

x86IPFx64

_InterlockedExchangeAdd_acq

IPF

_InterlockedExchangeAdd_rel

IPF

_InterlockedExchangeAdd64

はx64

_InterlockedExchangeAdd64_acq

IPF

_InterlockedExchangeAdd64_rel

IPF

ヘッダー ファイル <intrin.h>

解説

リリースではセマンティクス使用することが含まれるかおよびプロセッサ固有または取得したりデータ型に基づいて異なる _InterlockedExchangeAdd にいくつかのバリエーションがあります。

_InterlockedExchangeAdd の関数が 32 ビット整数値を操作しますが**_InterlockedExchangeAdd64** は64 ビットの整数値を操作します。

_InterlockedExchangeAdd_acq_InterlockedExchangeAdd64_acq の組み込み関数は _acq のサフィックスが操作の対応する関数が取得したりのセマンティクスを場合と同じです。クリティカル セクションに入るとき。

を使用してセマンティクスを解放するとこの関数の各バージョンはありません。

これらの関数は読み書き可能メモリ バリアとして機能します。 詳細については_ReadWriteBarrier を参照してください。

これらのルーチンは組み込みとしてのみ使用できます。 したがって/Oi または #pragma intrinsic を使用するかどうかを基本的です。 これらの組み込み #pragma 関数 を使用することはできません。

使用例

_InterlockedExchangeAdd を使用する方法の例については _InterlockedDecrement を参照してください。

参照

Reference

コンパイラ組み込み関数。

C++ キーワード

その他の技術情報

Conflicts with the x86 Compiler