共用方式為


Microsoft C/C++ 編譯器警告 C5000 到 C5199

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

重要

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++ 說明與社群 (部分機器翻譯)。

警告訊息

警告 訊息
編譯器警告 C5022 'type':指定了多個移動建構函式
編譯器警告 C5023 'type':指定了多個移動指派運算子
編譯器警告 (層級 4, 關閉) C5024 'type':移動建構函式已隱含定義為已刪除
編譯器警告 (層級 4, 關閉) C5025 'type':移動指派運算子已隱含定義為已刪除
編譯器警告 (層級 1 和層級 4,關閉) C5026 'type':移動建構函式已隱含定義為已刪除
編譯器警告 (層級 1 和層級 4,關閉) C5027 'type':移動指派運算子已隱含定義為已刪除
編譯器警告 (層級 1) C5028 'name':定義中未指定已在先前宣告 (number) 中指定的對齊
編譯器警告 (層級 4, 關閉) C5029 已使用非標準延伸模組:C++ 中的對齊屬性僅適用於變數、資料成員和標記型別
編譯器警告 (層級 3) C5030 無法辨識屬性 'attribute-name'
編譯器警告 (層級 4, 關閉) C5031 #pragma warning(pop):可能不相符,快顯警告狀態推送到了其他檔案
編譯器警告 (層級 4, 關閉) C5032 偵測到的 #pragma warning(push) 沒有對應的 #pragma warning(pop)
編譯器警告 (層級 1) C5033 'storage-class' 已不再是受支援的儲存類別
編譯器警告 (層級 5,關閉) C5034 內建 'intrinsic' 的使用會導致函式 function-name 編譯為客體程式碼
編譯器警告 (層級 5,關閉) C5035 功能 'feature' 的使用會導致函式 function-name 編譯為客體程式碼
編譯器警告 (層級 1) C5036 使用 /hybrid:x86arm64 'type1' 編譯為 'type2' 時,varargs 函式指標轉換
編譯器警告 (錯誤) C5037 'member-function':類別範本成員的非正規定義不能有預設引數
編譯器警告 (層級 4,關閉) C5038 資料成員 'member1' 將在資料成員 'member2' 之後初始化
編譯器警告 (層級 4,關閉) C5039 'function':可能會擲回在 -EHc 下傳遞至 extern C 函式之函式的指標或參考。 若此函式擲回例外狀況,可能會發生未定義的行為。
編譯器警告 (層級 3) C5040 動態例外狀況規格僅在 C++14 及更早版本中有效;系統會將其視為 noexcept(false)
編譯器警告 (層級 1,關閉) C5041 'definition':不需要 constexpr 靜態資料成員的非正規定義,而且在 C++17 中已被取代
編譯器警告 (層級 3,關閉) C5042 'declaration':無法在標準 C++ 中將區塊範圍的函式宣告指定為 'inline';請移除 'inline' 指定名稱
編譯器警告 (層級 2) C5043 'specification':例外狀況規格與上一個宣告不符
編譯器警告 (層級 4) C5044 命令列選項 option-name 的引數指向一個不存在的路徑 'path-name'
編譯器警告 (層級 4) C5045 若已指定 /Qspectre 參數,編譯器會插入適用於記憶體負載的 Spectre 風險降低
編譯器警告 (層級 2) C5046 'function':未定義涉及具有內部連結型別的符號
編譯器警告 (層級 1) C5047 不支援搭配模組使用非標準 __if_exists
編譯器警告 (層級 1) C5048 使用巨集 'macroname' 可能會產生非確定性的輸出
編譯器警告 (層級 1) C5049 'string':內嵌完整路徑可能會產生相依於電腦的輸出
編譯器警告 (層級 1) C5050 匯入模組 'module_name' 時可能不相容的環境:issue
編譯器警告 (層級 1) C5051 屬性 'attribute-name' 至少需要 'standard-level';已忽略
編譯器警告 (層級 3,關閉) C5052 關鍵字 'keyword-name' 是在 C++<版本> 引進,需要使用 'option-name' 命令列選項
編譯器警告 (層級 1) C5053 C++17 及更早版本中針對 'explicit(<expr>)' 的支援是廠商延伸模組
編譯器警告 (層級 4) C5054 運算子 'operator-name':在不同型別的列舉之間已被取代
編譯器警告 (層級 1) C5055 運算子 'operator-name':在列舉和浮點數型別之間已被取代
編譯器警告 (層級 1) C5056 運算子 'operator-name':已取代陣列型別
編譯器警告 (層級 1) C5057 'name' 的標頭單位參考已經存在。 忽略標頭單位 'header-name'
編譯器警告 (層級 1) C5058 檔案系統錯誤:找不到標頭單位 'unit-name' 的標頭檔 'file-name'
編譯器警告 C5059 目前不支援執行階段檢查和位址清理程式 - 停用執行階段檢查
編譯器警告 (層級 4) C5060 目前不支援 /Qpar 和位址清理程式 - 停用自動平行處理
編譯器警告 (層級 4) C5061 已取代使用逗號運算子作為下標運算式
編譯器警告 (層級 4) C5062 不再支援 'type-1' 與 'type-2' 之間的列舉直接清單初始化
編譯器警告 (層級 1) C5063 'std::is_constant_evaluated' 在資訊清單形式的常數評估運算式中一律評估為 true
編譯器警告 (層級 1) C5072 已啟用 ASAN 且未發出偵錯資訊。 啟用偵錯資訊以強化 ASAN 錯誤報告
編譯器警告 (層級 1) C5081 /GENPROFILE/FASTGENPROFILE/LTCG:PGI 不支援安全熱修補;停用安全熱修補。
編譯器警告 (層級 1) C5100 已保留 __VA_ARGS__ 以用於可變參數巨集
編譯器警告 (層級 1) C5101 在類似函式的巨集引數清單中使用前置處理器指示詞,是未定義的行為
編譯器警告 (層級 1) C5102 忽略無效的命令列巨集定義 'value'
編譯器警告 (層級 1) C5103 貼上 'token1' 與 'token2' 不會產生有效的前置處理語彙基元
編譯器警告 (層級 1) C5104 在巨集取代清單中找到 'string1#string2',您是指 'string1""#string2' 嗎?
編譯器警告 (層級 1) C5105 產生 'defined' 的巨集展開中有未定義的行為
編譯器警告 (層級 1) C5106 已用不同的參數名稱重新定義巨集
編譯器警告 (層級 1) C5107 遺漏終止 'char' 字元
編譯器警告 (層級 1) C5108 已保留 __VA_OPT__ 以用於可變參數巨集
編譯器警告 (層級 1) C5109 在巨集中使用 __VA_OPT__ 需要 '/Zc:preprocessor'
編譯器警告 (層級 4, 關閉) C5110 __VA_OPT__ 是 C++20 或 C23 之前的延伸模組

另請參閱

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