分享方式:


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