Visual Studio 2017 を使用することをお勧めします

_InterlockedIncrement の組み込み関数

 

公開日: 2016年7月

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

Microsoft 固有の仕様 →

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

long _InterlockedIncrement(  
   long * lpAddend  
);  
long _InterlockedIncrement_acq(  
   long * lpAddend  
);  
long _InterlockedIncrement_rel(  
   long * lpAddend  
);  
long _InterlockedIncrement_nf(  
   long * lpAddend  
);  
short _InterlockedIncrement16(  
   short * lpAddend  
);  
short _InterlockedIncrement16_acq(  
   short * lpAddend  
);  
short _InterlockedIncrement16_rel(  
   short * lpAddend  
);  
short _InterlockedIncrement16_nf (  
   short * lpAddend  
);  
__int64 _InterlockedIncrement64(  
   __int64 * lpAddend  
);  
__int64 _InterlockedIncrement64_acq(  
   __int64 * lpAddend  
);  
__int64 _InterlockedIncrement64_rel(  
   __int64 * lpAddend  
);   
__int64 _InterlockedIncrement64_nf(  
   __int64 * lpAddend  
);  

パラメーター

[入力、出力] lpAddend
インクリメントする変数へのポインター。

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

組み込みアーキテクチャヘッダー
_InterlockedIncrement_InterlockedIncrement16_InterlockedIncrement64x86、ARM、x64<intrin.h>
_InterlockedIncrement_acq, _InterlockedIncrement_rel, _InterlockedIncrement_nf, _InterlockedIncrement16_acq, _InterlockedIncrement16_rel, _InterlockedIncrement16_nf, _InterlockedIncrement64_acq, _InterlockedIncrement64_rel, _InterlockedIncrement64_nfARM<intrin.h>

_InterlockedIncrement には、格納するデータ型、およびプロセッサ固有の取得または解放のセマンティクスを使用するかどうかに基づき、異なるいくつかの種類があります。

_InterlockedIncrement 関数は 32 ビット整数値で動作しますが、_InterlockedIncrement16 は 16 ビット整数値および _InterlockedIncrement64 は 64 ビット整数値で動作します。

ARM プラットフォームでは、クリティカル セクションの最初と最後などで取得と解放のセマンティクスを必要とする場合は、_acq および _rel サフィックスの付いた組み込みを使用します。 _nf ("フェンスなし") サフィックスの付いた組み込みはメモリ バリアとしては機能しません。

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

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

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

_InterlockedIncrement の使用例については、「_InterlockedDecrement」を参照してください。

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

表示: