共用方式為


Microsoft C/C++ 編譯器警告 C5200 到 C5399

本節中的文章說明 Microsoft C/C++ 編譯器警告訊息 C5200 到 C5399。

重要

Visual Studio 編譯器及建置工具可以報告許多類型的錯誤和警告。 發現錯誤或警告後,建置工具可能會假設程式碼意圖並嘗試繼續執行,以便可以同時報告更多問題。 如果工具做的假設有誤,那麼後來的錯誤或警告可能不適用於您的專案。 當您更正專案中的問題時,務必從所報告的第一個錯誤或警告開始進行。 一個修正程式可能會讓許多後續的錯誤消失。

若要取得 Visual Studio 中特定診斷訊息的說明,請在 [輸出] 視窗中選取該訊息,然後按下 F1 鍵。 如果存在,Visual Studio 會開啟該錯誤的文件頁面。 您也可以使用頁面頂端的搜尋工具來尋找有關特定錯誤或警告的文章。 或者,在此頁面上依照目錄中的工具和型別瀏覽錯誤與警告清單。

注意

並非每個 Visual Studio 錯誤或警告都有記載。 在許多情況下,診斷訊息會提供所有可用的資訊。 若您在使用 F1 時登陸此頁面,而且您認為錯誤或警告訊息需要額外的說明,請告訴我們。 您可以使用此頁面上的意見反應按鈕,在 GitHub 提出文件問題。 如果您認為錯誤或警告有誤,或發現工具組有其他問題,請在開發人員社群網站上回報產品問題。 您也可以傳送意見反應,並在 IDE 內輸入錯誤。 在 Visual Studio 中,移至功能表列,然後選擇 [說明] > [傳送意見反應] > [回報問題],或使用 [說明] > [傳送意見反應] > [傳送建議] 提交建議。 已建立了一些編譯器錯誤主題,這些錯誤不是由編譯器發出的,而現在會重新導向至此頁面。

您可以在 Microsoft Learn Q&A 論壇中找到針對錯誤和警告的其他協助。 或者,在 Visual Studio C++ 開發人員社群網站上搜尋錯誤或警告號碼。 您也可以搜尋 Stack Overflow 以尋找解決方案。

如需其他說明與社群資源的連結,請參閱 Visual C++ 說明與社群 (部分機器翻譯)。

警告訊息

警告 訊息
編譯器警告 (層級 1) C5200 功能 'feature-name' 需要編譯器旗標 'option-name'
編譯器警告 (層級 1) C5201 除非使用全域模組片段,否則模組宣告只能出現在編譯單位的開頭
編譯器警告 (層級 1) C5202 全域模組片段只能包含前置處理器指示詞
編譯器警告 (層級 1) C5203 在 C++20 中,'explicit' 後方小括號內的宣告子名稱會視為明確指定名稱
編譯器警告 (層級 3, 關閉) C5204 'type-name':類別有虛擬函式,但其為一般解構函式而無法虛擬; 衍生自此類別的物件執行個體可能無法正確解構
編譯器警告 (層級 4) C5205 刪除具有非虛擬解構函式的抽象類別 'type-name',會造成未定義的行為
編譯器警告 (層級 3) C5206 推算出的協同程式傳回型別為非標準的延伸模組
編譯器警告 (層級 1) C5207 簡單需求會判斷表達式 'e->id' 的有效性。 您是不是要尋找 '{ e } -> id'? 您可以使用 ‘{ e->id }' 隱藏警告
編譯器警告 (層級 1) C5208 typedef 名稱中所使用的未命名類別,不可宣告非靜態資料成員、成員列舉或成員類別以外的成員
編譯器警告 (層級 1) C5209 init-capture 的 C++20 語法已變更為 '& ...opt identifier initializer'
編譯器警告 (層級 1) C5210 'name' 是無效的標頭單位參考; 將予以忽略
編譯器警告 (層級 1) C5212 'name' 是無效的具名參考; 將視其為檔案參考
編譯器警告 (層級 1) C5213 'name' 具名參考被視為具名分割,但未指定名稱; 將視其為檔案參考
編譯器警告 (層級 4, 關閉) C5214 C++20 中已淘汰將 'modifier' 套用至具有 volatile 限定類型的運算元功能
編譯器警告 (層級 4, 關閉) C5215 C++20 中已淘汰 volatile 限定類型的 'name' 函式參數
編譯器警告 (層級 4, 關閉) C5216 'name' volatile 限定傳回型別已在 C++20 中淘汰
編譯器警告 (層級 4, 關閉) C5217 C++20 中已淘汰包含 volatile 的結構化繫結宣告
編譯器警告 (層級 1) C5218 使用不合格的參數 '/Zc:sizedDealloc-' 或 '/Zc:alignedNew-' 時,終結刪除可能無法如預期般運作
編譯器警告 (層級 2, 關閉) C5219 從 'type-1' 到 'type-2' 的隱含轉換可能會遺失資料
編譯器警告 (層級 4, 關閉) C5220 'name': 具有合格 volatile 類型的非靜態資料成員,不再表示編譯器產生的複製/移動建構函式與複製/移動指派運算子非 trivial
編譯器警告 (層級 1) C5221 xfg::rename 已淘汰。
編譯器警告 (層級 3) C5222 'attribute-name': 所有不限範圍的屬性名稱皆保留供未來標準化使用
編譯器警告 (層級 3) C5223 屬性命名空間 'msvc' 中的所有屬性名稱皆保留供實作之用
編譯器警告 (層級 3) C5224 屬性命名空間 'namespace-name' 中的所有屬性名稱皆保留供未來標準化使用
編譯器警告 (層級 1) C5225 'symbol': 私用模組片段所定義的匯出內嵌函式是非標準的延伸模組
編譯器警告 (層級 1) C5226 'symbol': 私用模組片段所定義的匯出範本沒有可到達的具現化
編譯器警告 (層級 4) C5227 非標準擴充,將 'symbol' 解析為 'value',這在 /permissive- 開啟時不會顯示。
編譯器警告 (層級 4) C5228 非標準擴充,‘identifier' 解析為相依基礎的成員。 在 /permissive- 底下不允許進行此查閱。
編譯器警告 (層級 4) C5229 非標準擴充,名稱查閱找到隱藏的 friend 函式 'function-name',而 /permissive- 不允許此函式。
編譯器警告 C5230 非標準擴充,‘identifier' 已解析為 /permissive 下的 'symbol-1'。 其在 /permissive- 下會解析為 ‘symbol-2'。
編譯器警告 (層級 3) C5231 運算式 ‘co_await promise.final_suspend()' 必須是非擲回
編譯器警告 (層級 1) C5232 在 C++20 中,此比較會以遞迴方式呼叫 'name'
編譯器警告 (層級 4,關閉) C5233 未使用明確 Lambda 擷取 'identifier'
編譯器警告 (層級 1) C5234 檔案系統錯誤: 'filename' 不是有效的標頭名稱; 將予以忽略
編譯器警告 (層級 1) C5235 JSON 剖析錯誤: 訊息; 將忽略 'filename'
編譯器警告 (層級 1) C5236 JSON 格式不正確: 訊息; 將忽略 'filename'
編譯器警告 (層級 1) C5237 無法將標頭單元項目 'name' 解析為 'filename' 中的標頭檔; 將忽略項目
編譯器警告 (層級 1) C5238 檔案系統錯誤: 無法開啟 'filename' 以進行讀取; 將予以忽略
編譯器警告 (層級 4) C5239 'symbol': 已從宣告 __declspec(nothrow) 的函式呼叫可能擲回的函式。 若擲回例外狀況,可能會發生未定義的行為。
編譯器警告 (層級 4) C5240 'attribute-name': 已忽略此語法位置的屬性
編譯器警告 (層級 1) C5241 /exportHeader 查閱標頭-名稱的使用方法已淘汰; 建議使用 '/headerName:name value=filename'
編譯器警告 (層級 1) C5242 在 pragma 'identifier' 中發生語法錯誤
編譯器警告 (層級 1, 關閉) C5243 'type-name': 使用不完整的類別 'class-name' 可能會因為 ABI 限制,導致潛在的一個定義規則違規
編譯器警告 (層級 1) C5244 模組 'module-name-1' 之 Purview 中的 '#include <filename>' 出現錯誤。 請考慮將該指示詞移到模組宣告之前,或是以 'import <module-name-2>;' 取代文字包含。
編譯器警告 (層級 4, 關閉) C5245 'function': 已移除具有內部連結的未參考函式
編譯器警告 (層級 1, 關閉) C5246 'member': 子物件的初始化應該括在大括弧中
編譯器警告 (層級 1, 關閉) C5247 區段 'section-name' 已保留給 C++ 動態初始化。 手動建立區段將會干擾 C++ 動態初始化,並可能導致未定義的行為
編譯器警告 (層級 1, 關閉) C5248 區段 'section-name' 已保留給 C++ 動態初始化。 手動放入該區段的變數可能會遭最佳化省略,且其與編譯器所產生動態初始設定式的相對順序未指定。
編譯器警告 (層級 1, 關閉) C5249 類型 'enumeration_name' 的 'bitfield' 擁有具名列舉程式,其值無法在 'bitfield_width' 的指定位元欄位寬度中表示。
編譯器警告 (層級 3, 關閉) C5250 'function_name': 內建函式未宣告。
編譯器警告 (層級 4, 關閉) C5251 在包含標頭之後,segment-name 已變更
編譯器警告 (層級 4) C5252 多個不同類型造成相同的 XFG 類型雜湊 hash-value; PDB 只會記錄其中一個
編譯器警告 (層級 4) C5253 非本機 Lambda 不能有預設擷取
編譯器警告 (層級 4, 關閉) C5254 語言功能 'terse static assert' 需要編譯器旗標 '/std:c++17'
編譯器警告 (層級 3) C5255 發現未結束的雙向字元: 'U+XXXX'
編譯器警告 (層級 1, 關閉) C5256 'enumeration': 具有固定基礎類型之列舉的非定義宣告只可做為獨立宣告
編譯器警告 (層級 1 或 4) C5257 'enumeration': 先前宣告的列舉沒有固定的基礎類型
編譯器警告 (層級 4, 關閉) C5258 這項使用不需要 'symbol' 的明確擷取
編譯器警告 (層級 4, 關閉) C5259 'specialized-type': 明確特製化必須有 'template <>'
編譯器警告 (層級 1) C5260 常數變數 'variable-name' 在包含的標頭檔案內容中有內部連結,但在匯入的標頭單位內容中有外部連結; 若要跨翻譯單位共用,也請考慮將其宣告為 'inline',或考慮將它宣告為 'inline',以表示意圖將它用於本機此翻譯單位
編譯器警告 (層級 2) C5261 沒有整數類型可代表列舉 'enum-name' 中的所有列舉值
編譯器警告 (層級 1、錯誤、關閉) C5262 這裡發生隱含的 fall-through; 是否遺漏 break 陳述式? 在案例之間故意省略 break 陳述式時,請使用 [[fallthrough]]
編譯器警告 (層級 4, 關閉) C5263 在暫存物件上呼叫 'std::move' 會防止複製省略
編譯器警告 (層級 4, 關閉) C5264 'variable-name': 未使用 'const' 變數
編譯器警告 (層級 1) C5265 無法開啟搜尋路徑 'path'
編譯器警告 (層級 4, 關閉) C5266 傳回類型的 'const' 限定詞沒有作用
編譯器警告 C5267 'type' 的隱含複製建構函式/指派運算子的定義已被取代,因為其具有使用者提供的指派運算子/複製建構函式
編譯器警告 (層級 1) C5268 無法在固定位址 0xaddress 配置記憶體。 如果需要位元相同的 .pch 檔案,請使用 /Yb 來指定特定位址基底。
編譯器警告 (層級 1) C5269 無法在固定位址0xaddress 配置 PCH 記憶體。 如果需要位元相同的 .pch 檔案,請使用 /Ym 來指定特定位址基底。
編譯器警告 (層級 3) C5270 選項 'switch name' 不允許 'value'; 允許的值是: value list
編譯器警告 (層級 4) C5271 先前匯入的組件 'assembly1' 的名稱與將要匯入的組件 'assembly2' 相同。 這是故意的嗎?
編譯器警告 (層級 1) C5272 擲回不可複製類型 'type' 的物件為非標準。 如果執行階段需要複本,則會透過 memcpy 來做出類似行為。
編譯器警告 (層級 1) C5273 行為變更: 已不再忽略匿名類型上的 _Alignas (已升階的成員會對齊)
編譯器警告 (層級 1) C5274 行為變更: _Alignas 不再套用至類型 'type' (僅適用於已宣告的資料物件)
編譯器警告 (錯誤) C5275 在 '/clr' 下匯入外觀元件 'name'; 遺漏選項 '/clr:netcore'?
編譯器警告 (層級 1,錯誤) C5300 '#pragma omp atomic': 'operator' 的左運算元必須符合 assignment-expression 的左側
編譯器警告 (層級 1) C5301 '#pragma omp for': 'loop-index' 增加,而迴圈條件使用 'comparison'; 非終止迴圈?
編譯器警告 (層級 1) C5302 '#pragma omp for': 'loop-index' 減少,而迴圈條件使用 'comparison'; 非終止迴圈?
編譯器警告 (層級 1) C5303 標示為 [[msvc::intrinsic]] 的函式未導致無作業轉換
編譯器警告 (層級 1) C5304 從此模組會出的 using-declaration 'name1' 所指定的宣告具有內部連結,在模組外部使用這類名稱是不正確的格式; 請考慮宣告 'name2' 'inline' 以在此模組外部使用它
編譯器警告 (層級 1) C5305 'name': 忽略了在明確具現化定義之後的明確具現化宣告

另請參閱

C/C++ 編譯器與建置工具錯誤與警告 (部分機器翻譯)
編譯器警告 C4000 到 C5999