警告 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
}