Предупреждение C6396
sizeof('integerConstant') всегда возвращает размер базового целочисленного типа
Замечания
Это предупреждение указывает, где целочисленная константа используется в качестве аргумента sizeof
. Такое выражение всегда возвращает размер типа константы. Вместо этого лучше написать sizeof(type)
. Это предупреждение перехватывает распространенные опечатки в вычислениях смещения буфера.
Эта проверка игнорирует литералы символов, так как buffer_size += sizeof(UNICODE_NULL)
является распространенным идиом.
Пример
void f()
{
int a = sizeof(5); // C6396 reported here
}
Чтобы устранить эту проблему, замените целочисленную константу своим типом:
void f()
{
int a = sizeof(int); // no C6396 reported here
}