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
}