Sdílet prostřednictvím


Upozornění C6396

sizeof('integerConstant') vždy vrátí velikost základního celočíselného typu.

Poznámky

Toto upozornění označuje, kde se jako argument používá integrální konstanta sizeof . Takový výraz vždy vrátí velikost typu konstanty. Místo toho je lepší psát sizeof(type) . Toto upozornění zachytává běžné překlepy při výpočtech posunu vyrovnávací paměti.

Tato kontrola ignoruje literály znaků, protože buffer_size += sizeof(UNICODE_NULL) je to běžný idiom.

Příklad

void f()
{  
    int a = sizeof(5);         // C6396 reported here
}

Chcete-li tento problém vyřešit, nahraďte integrální konstantu jejím typem:

void f()
{  
    int a = sizeof(int);         // no C6396 reported here
}