InterlockedDecrement 関数 (winnt.h)

指定した 32 ビット変数の値をアトミック操作としてデクリメント (1 ずつ減少) します。

64 ビット値を操作するには、 InterlockedDecrement64 関数を使用します。

構文

LONG InterlockedDecrement(
  [in, out] LONG volatile *Addend
);

パラメーター

[in, out] Addend

デクリメントされる変数へのポインター。

戻り値

関数は、結果としてデクリメントされた値を返します。

注釈

Addend パラメーターが指す変数は、32 ビット境界に配置する必要があります。そうしないと、この関数はマルチプロセッサ x86 システムおよび x86 以外のシステムで予期しない動作をします。 「_aligned_malloc」を参照してください。

インターロックされた関数は、複数のスレッドによって共有される変数へのアクセスを同期するための簡単なメカニズムを提供します。 この関数は、他のインターロックされた関数の呼び出しに関してアトミックです。

この関数は、可能な場合はコンパイラ組み込みを使用して実装されます。 詳細については、WinBase.h ヘッダー ファイルと _InterlockedDecrementを参照してください。

この関数は、メモリ操作が順番に完了するように、完全なメモリ バリア (またはフェンス) を生成します。

Itanium ベースのシステム: パフォーマンスが重要なアプリケーションの場合は、代わりに InterlockedDecrementAcquire または InterlockedDecrementRelease を 使用してください。

メモこの関数は、Windows RT ベースのシステムでサポートされています。
 

要件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー winnt.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

インタロックされた変数アクセス

InterlockedDecrement16

InterlockedDecrement16Acquire

InterlockedDecrement16NoFence

InterlockedDecrement16Release

InterlockedDecrement64

InterlockedDecrementAcquire

InterlockedDecrementAcquire64

InterlockedDecrementNoFence

InterlockedDecrementNoFence64

InterlockedDecrementRelease

InterlockedDecrementRelease64

InterlockedIncrement

同期関数