Condividi tramite


Avviso C26101

Non è possibile usare correttamente l'operazione interlocked per la variabile 'var'.

Le API Di Windows offrono varie operazioni interlock. L'annotazione _Interlocked_ specifica che è necessario accedere a una variabile solo tramite un'operazione interlocked. L'avviso C26101 viene generato quando l'accesso a una variabile non è coerente con l'annotazione _Interlocked_ .

Esempio

L'esempio seguente genera l'avviso C26101 perché si verifica una violazione del _Interlocked_ contratto.

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);
}