Condividi tramite


C26101

warning C26101: Impossibile utilizzare correttamente l'operazione con interlock per la variabile <var>.

Le API Windows offrono diverse operazioni interlocked.L'annotazione _Interlocked_ specifica che una variabile deve essere accessibile tramite un'operazione interlocked.L'avviso C26101 viene generato quando un accesso non è coerente con l'annotazione _Interlocked_.

Esempio

Nell'esempio seguente viene generato un avviso C26101, perché c'è una violazione del contratto _Interlocked_.

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