C26101C26101

avertissement C26101 : Échec de l’opération à blocage correctement pour la variable <var >.warning C26101: Failing to use interlocked operation properly for variable <var>.

API Windows offrent un éventail d’opérations verrouillées.Windows APIs offer a variety of interlocked operations. Annotation _Interlocked_ Spécifie qu’une variable doit uniquement être accessible via une opération à blocage.Annotation _Interlocked_ specifies that a variable should only be accessed through an interlocked operation. C26101 d’avertissement est émis lorsqu’un accès n’est pas cohérent avec la _Interlocked_ annotation.Warning C26101 is issued when an access is not consistent with the _Interlocked_ annotation.

ExempleExample

L’exemple suivant génère l’avertissement C26101, car il existe une violation de la _Interlocked_ contrat.The following example generates warning C26101 because there is a violation of the _Interlocked_ contract.


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