Поделиться через


Предупреждение 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
}