共用方式為


編譯器警告 (層級 1) C4305

'conversion': 從 'type1' 到 'type2' 發生截斷狀況

備註

當值在初始化或建構函式自變數中轉換成較小的類型時,就會發出這個警告,而導致資訊遺失。

範例

此範例顯示您可能會看到此警告的兩種方式:

// C4305.cpp
// Compile by using: cl /EHsc /W4 C4305.cpp

struct item
{
    item(float) {}
};

int main()
{
    float f = 2.71828;          // C4305 'initializing'
    item i(3.14159);            // C4305 'argument'
    return static_cast<int>(f);
}

若要修正此問題,請使用正確型別的值初始化,或使用明確轉換成正確的類型。 例如,使用 float 2.71828f 之類的常值,而不是 double 初始化變數的默認類型, float 或傳遞至接受自變數的 float 建構函式。