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