Aviso C6396
sizeof('integerConstant') sempre retorna o tamanho do tipo inteiro subjacente
Comentários
Este aviso indica onde uma constante integral é usada como argumento sizeof
. Essa expressão sempre retorna o tamanho do tipo da constante. É melhor gravar sizeof(type)
em vez disso. Esse aviso captura erros de digitação comuns em cálculos de deslocamento de buffer.
Esta verificação ignora literais de caractere porque buffer_size += sizeof(UNICODE_NULL)
é uma expressão comum.
Exemplo
void f()
{
int a = sizeof(5); // C6396 reported here
}
Para corrigir esse problema, substitua a constante integral por seu tipo:
void f()
{
int a = sizeof(int); // no C6396 reported here
}