C26101

警告 C26101:对于 <var> 变量,未能正确使用联锁操作。

Windows API 提供多种联锁操作。注释 _Interlocked_ 指定应通过一个互锁操作只访问变量。当访问与 _Interlocked_ 批注不一致时,发出C26101 警告。

示例

因为有冲突 _Interlocked_ 协定,下面的示例生成警告 C26101。

CRITICAL_SECTION cs;
typedef struct _DATA 
{
    _Interlocked_ LONG data;
} DATA;

void Safe(DATA* p) 
{
    InterlockedIncrement(&p->data); // OK
}

void Unsafe(DATA* p) 
{
    p->data += 1; // Warning C26101
    EnterCriticalSection(&cs);
    LeaveCriticalSection(&cs);
}