Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Následující příklad vygeneruje C6396:
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
}