此文件區段的文章會說明編譯器所產生錯誤訊息的子集。
重要
Visual Studio 編譯器及建置工具可以報告許多類型的錯誤和警告。 發現錯誤或警告後,建置工具可能會假設程式碼意圖並嘗試繼續執行,以便可以同時報告更多問題。 如果工具做的假設有誤,那麼後來的錯誤或警告可能不適用於您的專案。 當您更正專案中的問題時,務必從所報告的第一個錯誤或警告開始進行,並經常重新建置。 一個修正程式可能會解決多個後續錯誤。
若要取得 Visual Studio 中特定診斷訊息的說明,請在 [輸出] 視窗中選取該訊息,然後按下 F1 鍵。 如果存在,Visual Studio 會開啟該錯誤的文件頁面。 您也可以使用頁面頂端的搜尋工具來尋找有關特定錯誤或警告的文章。 或者您可以根據本頁目錄按工具和類型瀏覽錯誤及警告列表。
注意
並非每個 Visual Studio 錯誤或警告都有記載。 在許多情況下,診斷訊息會提供所有可用的資訊。 如果您登陸此頁面並認為錯誤或警告訊息需要其他說明,請使用此頁面的意見反應按鈕讓我們知道。 如果您認為錯誤或警告有誤,或發現工具組有其他問題,請在開發人員社群網站上回報產品問題。 您也可以傳送意見反應,並在 IDE 內輸入錯誤。 在 Visual Studio 中,移至功能表欄,然後選擇 [說明] > [傳送意見反應] > [回報問題],或使用 [說明] > [傳送意見反應] > [建議功能]來提交建議。 已建立某些編譯器錯誤主題,但編譯器未發出,現在會重新導向至此頁面。
您可以在 Microsoft Q&A C++ 論壇中找到其他關於錯誤和警告的協助。 或者,在 Visual Studio C++ 開發人員社群網站上搜尋錯誤或警告號碼。 您也可以搜尋 Stack Overflow 以尋找解決方案。
如需其他說明和社群資源的連結,請參閱 Visual C++ 說明與社群。
錯誤訊息
| 錯誤 | 訊息 |
|---|---|
| 編譯器錯誤 C2100 | 您無法對類型 'type' 的運算元解引用 |
| 編譯器錯誤 C2101 | 不可在常數上使用 '&' |
| 編譯器錯誤 C2102 | '&' 需要左值 (l-value) |
| 編譯器錯誤 C2103 | 不可在暫存器變數上使用 '&' |
| 編譯器錯誤 C2104 | 位元欄位上的 '&' 被忽略 |
| 編譯器錯誤 C2105 | 'operator' 需要左值 (l-value) |
| 編譯器錯誤 C2106 | 'operator': 左運算元必須是左值 (l-value) |
| 編譯器錯誤 C2107 | 不合法的索引,不允許間接存取 |
| 編譯器錯誤 C2108 | 下標不是整數類型 |
| 編譯器錯誤 C2109 | 下標需要陣列或指標類型 |
| 編譯器錯誤 C2110 | '+':無法將兩個指標相加 |
| 編譯器錯誤 C2111 | '+': 指標相加需要整數運算元 |
| 編譯器錯誤 C2112 | '-': 指標相減需要整數或指標運算元 |
| 編譯器錯誤 C2113 | 「-」:只能從另一個指標中減去指標 |
| 編譯器錯誤 C2114 | 'operator': 指標在左邊;右邊需要整數值 |
| 編譯器錯誤 C2115 | 'operator': 不相容的類型 |
| 編譯器錯誤 C2116 | 'name': 函式參數列表在宣告之間不符 |
| 編譯器錯誤 C2117 | 'identifier': 陣列界限溢位 |
| 編譯器錯誤 C2118 | 負索引 |
| 編譯器錯誤 C2119 | 'identifier': 無法從空的初始設定式推斷 'type' 的類型 |
| 編譯器錯誤 C2120 | 'void' 無法與任何其他類型規範結合 |
| 編譯器錯誤 C2121 | '#': 無效的字元: 可能是巨集展開的結果 |
| 編譯器錯誤 C2122 | 'identifier': 名稱清單中的原型參數不合法 |
| 編譯器錯誤 C2123 | 'identifier': 別名範本不能被明確或部分特製化 |
| 編譯器錯誤 C2124 | 除以 0 或取除以 0 的餘數 |
| 編譯器錯誤 C2125 | 'constexpr' 與 'token' 不相容 |
| 編譯器錯誤 C2126 | 'identifier' 不能以 'constexpr' 識別碼宣告 |
| 編譯器錯誤 C2127 | 'identifier': 以非常數運算式初始化 'constexpr' 實體不合法 |
| 編譯器錯誤 C2128 | 'function': alloc_text/same_seg 僅適用於使用 C 連結的函式 |
| 編譯器錯誤 C2129 | 已經宣告靜態函式 'identifier' 但尚未定義 |
| 編譯器錯誤 C2130 | #line 必須有包含檔名的字串,但只找到 'token' |
| 編譯器錯誤 C2131 | 運算式未評估為常數 |
| 編譯器錯誤 C2132 | 語法錯誤:未預期的識別碼 |
| 編譯器錯誤 C2133 | 'identifier':未知的大小 |
| 編譯器錯誤 C2134 | 'function': 呼叫未產生常數運算式 |
| 編譯器錯誤 C2135 | 'identifier': 您無法將 'operator' 套用至位字段 |
| 編譯器錯誤 C2136 | 不允許撰寫 API 合約 |
| 編譯器錯誤 C2137 | 空的字元常數 |
| 編譯器錯誤 C2138 | 未包含任何成員的列舉定義是不合法的 |
| 編譯器錯誤 C2139 | 'class': 未定義的類別不允許做為編譯器內建的類型特性 'trait' 的引數 |
| 編譯器錯誤 C2140 | 'type': 取決於泛型類型參數的類型,不允許做為編譯器內建的類型特性 'trait' 的引數 |
| 編譯器錯誤 C2141 | 陣列大小溢位 |
| 編譯器錯誤 C2142 | 函式宣告不同,只能在其中之一指定變數參數 |
| 編譯器錯誤 C2143 | 語法錯誤:在 'token2' 之前遺漏 'token1' |
| 編譯器錯誤 C2144 | 語法錯誤:'type' 前面應有 'token2' |
| 編譯器錯誤 C2145 | 語法錯誤:在識別碼之前遺漏 'token' |
| 編譯器錯誤 C2146 | 語法錯誤:在識別碼 'identifier' 之前遺漏 'token' |
| 編譯器錯誤 C2147 | 語法錯誤:'token' 是新的關鍵字 |
| 編譯器錯誤 C2148 | 陣列的總大小不得超過 0xvalue 個位元組 |
| 編譯器錯誤 C2149 | 'identifier': 具名的位元欄位寬度不能為零 |
| 編譯器錯誤 C2150 | 'identifier': 位元欄位的類型必須是 'int'、'signed int' 或 'unsigned int' |
| 編譯器錯誤 C2151 | 有一個以上的語言屬性 |
| 編譯器錯誤 C2152 | 'identifier': 具有不同屬性的函式指標 |
| 編譯器錯誤 C2153 | 整數字面值必須至少有一位數 |
| 編譯器錯誤 C2154 | 「型態」:僅允許列舉型別作為編譯器內在型態特徵「__underlying_type」的參數 |
| 編譯器錯誤 C2155 | '?': 無效的左運算元,必須是算術或指標類型 |
| 編譯器錯誤 C2156 | Pragma 必須定義在函式之外 |
| 編譯器錯誤 C2157 | 'identifier': 在 pragma 清單中使用之前必須先宣告 |
| 編譯器錯誤 C2158 | 'type': #pragma make_public 指令目前僅支援原生非範本類型 |
| 編譯器錯誤 C2159 | 已經指定一個以上的儲存類別 |
| 編譯器錯誤 C2160 | '##' 不可以出現在巨集定義開頭 |
| 編譯器錯誤 C2161 | '##' 不可以出現在巨集定義結尾 |
| 編譯器錯誤 C2162 | 預期的巨集形式參數 |
| 編譯器錯誤 C2163 | 'function': 不可用作內建函式 |
| 編譯器錯誤 C2164 | function': 內建函式未宣告 |
| 編譯器錯誤 C2165 | 'modifier': 無法修飾指向資料的指標 |
| 編譯器錯誤 C2166 | 左值 (l-value) 指定為常數物件 |
| 編譯器錯誤 C2167 | 'function': 內建函式的實際參數太多 |
| 編譯器錯誤 C2168 | 'function': 內建函式的實際參數太少 |
| 編譯器錯誤 C2169 | 'function': 內建函式無法被定義 |
| 編譯器錯誤 C2170 | 'identifier': 未宣告為函式,不可為內建 |
| 編譯器錯誤 C2171 | 運算子 'operator' 無法套用到類型為 'type' 的運算元 |
| 編譯器錯誤 C2172 | 'function': 實際參數不是指標:參數 number |
| 編譯器錯誤 C2173 | 'function': 實際參數不是指標:參數 number,參數清單 number |
| 編譯器錯誤 C2174 | 'function':實際參數具有類型 'void':參數 number,參數清單 number |
| 編譯器錯誤 C2175 | 'locale': 無效的地區設定 |
| 編譯器錯誤 C2176 | return 宣告不能出現在與建構子相關的 function-try-block 的處理常式中 |
| 編譯器錯誤 C2177 | 常數太大 |
| 編譯器錯誤 C2178 | 'identifier' 不能以 'specifier' 識別碼宣告 |
| 編譯器錯誤 C2179 | 'type': 屬性引數不能使用類型參數 |
| 編譯器錯誤 C2180 | 控制運算式具有類型 'type' |
| 編譯器錯誤 C2181 | 不合法的 else (沒有相符的 if) |
| 編譯器錯誤 C2182 | 「識別碼」:此「無效」的使用不成立 |
| 編譯器錯誤 C2183 | 語法錯誤:編譯單位是空白的 |
| 編譯器錯誤 C2184 | 'type': 不合法類型用於 __except 運算式 |
| 編譯器錯誤 C2185 | 'identifier': 基於不合法的配置 |
| 編譯器錯誤 C2186 | 'operator': 類型 'void' 的運算元不合法 |
| 編譯器錯誤 C2187 | 語法錯誤:這裡不應有 'token' |
| 編譯器錯誤 C2188 | 'number':對於寬位元組字符而言太大 |
| 編譯器錯誤 C2189 | 'alignas' 屬性不適用於位元欄位、函式參數、例外狀況宣告,或以 'register' 儲存類別宣告的變數 |
| 編譯器錯誤 C2190 | 第一個參數清單比第二個參數清單長 |
| 編譯器錯誤 C2191 | 第二個參數清單比第一個參數清單長 |
| 編譯器錯誤 C2192 | 參數 'number' 的宣告方式不同 |
| 編譯器錯誤 C2193 | 'identifier': 已在區段中 |
| 編譯器錯誤 C2194 | 'identifier': 是文字區段 |
| 編譯器錯誤 C2195 | 'identifier': 是資料區段 |
| 編譯器錯誤 C2196 | 'value' 的 case值已經被使用过 |
| 編譯器錯誤 C2197 | 'function': 呼叫的引數太多 |
| 編譯器錯誤 C2198 | 'function': 呼叫的引數太少 |
| 編譯器錯誤 C2199 | 語法錯誤:在全域範圍發現了 'identifier (' (是打算進行宣告嗎?) |