Advertencia C6396
sizeof('integerConstant') siempre devuelve el tamaño del tipo entero subyacente
Comentarios
Esta advertencia indica dónde se usa una constante integral como argumento sizeof
. Esta expresión siempre devuelve el tamaño del tipo de la constante. Es mejor escribir sizeof(type)
en su lugar. Esta advertencia detecta errores tipográficos comunes en los cálculos de desplazamiento del búfer.
Esta comprobación omite los literales de caracteres porque buffer_size += sizeof(UNICODE_NULL)
es una expresión común.
Ejemplo
void f()
{
int a = sizeof(5); // C6396 reported here
}
Para corregir este problema, reemplace la constante integral por su tipo:
void f()
{
int a = sizeof(int); // no C6396 reported here
}