Warnung C6396
sizeof('integerConstant') gibt immer die Größe des zugrunde liegenden Integertyps zurück.
Hinweise
Diese Warnung gibt an, wo eine integrale Konstante als sizeof
-Argument verwendet wird. Ein solcher Ausdruck gibt immer die Größe des Typs der Konstante zurück. Es ist besser, stattdessen sizeof(type)
zu schreiben. Diese Warnung erfasst gängige Tippfehler in Pufferoffsetberechnungen.
Bei dieser Überprüfung werden Zeichenliterale ignoriert, da buffer_size += sizeof(UNICODE_NULL)
ein gängiges Idiom ist.
Beispiel
void f()
{
int a = sizeof(5); // C6396 reported here
}
Um dieses Problem zu beheben, ersetzen Sie die integrale Konstante durch ihren Typ:
void f()
{
int a = sizeof(int); // no C6396 reported here
}