Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может устранить несколько последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице и думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам, используя кнопки обратной связи на этой странице. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите Справка > Отправить отзыв > Сообщить о проблемеили отправить предложение с помощью Справка > Отправить отзыв > Предложить функцию. Некоторые темы об ошибках компилятора были созданы, которые не генерируются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Q&A C++. Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения на Stack Overflow.
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Сообщения об ошибках
| Ошибка | Сообщение |
|---|---|
| Ошибка компилятора C2100 | Вы не можете разыменовать операнд типа "type" |
| Ошибка компилятора C2101 | "&" в константе |
| Ошибка компилятора C2102 | для "&" требуется левостороннее значение |
| Ошибка компилятора C2103 | "&" для регистровой переменной |
| Ошибка компилятора C2104 | '&' в битовом поле игнорируется |
| Ошибка компилятора C2105 | Оператору требуется l-value |
| Ошибка компилятора C2106 | Оператор: левый операнд должен быть l-value |
| Ошибка компилятора C2107 | незаконный индекс, косвенное не разрешено |
| Ошибка компилятора C2108 | подстрок не имеет целочисленного типа |
| Ошибка компилятора C2109 | Для подстрочного индекса требуется тип массива или указателя |
| Ошибка компилятора C2110 | '+': не удается добавить два указателя |
| Ошибка компилятора C2111 | '+': добавление указателя требует целочисленного операнда |
| Ошибка компилятора C2112 | '-': для вычитания указателей требуется операнд целого типа или другой указатель. |
| Ошибка компилятора C2113 | '-': вычитание указателя возможно только из другого указателя |
| Ошибка компилятора C2114 | Оператор: указатель слева; нужно целочисленное значение справа |
| Ошибка компилятора C2115 | Оператор: несовместимые типы |
| Ошибка компилятора C2116 | "name": списки параметров функции не совпадают между объявлениями |
| Ошибка компилятора C2117 | "идентификатор": переполнение границ массива |
| Ошибка компилятора C2118 | отрицательный подстрок |
| Ошибка компилятора C2119 | "идентификатор": тип для "типа" не может быть выведен из пустого инициализатора" |
| Ошибка компилятора C2120 | 'void' не может сочетаться с любым другим описателями типов |
| Ошибка компилятора C2121 | '#': недопустимый символ: возможно, результат расширения макроса |
| Ошибка компилятора C2122 | "идентификатор": параметр прототипа в списке имен недопустимый |
| Ошибка компилятора C2123 | "идентификатор": шаблоны псевдонимов не могут быть явно или частично специализированы |
| Ошибка компилятора C2124 | деление или модуль по нулю |
| Ошибка компилятора C2125 | "constexpr" несовместим с "token" |
| Ошибка компилятора C2126 | "идентификатор" нельзя объявить со спецификатором constexpr |
| Ошибка компилятора C2127 | "идентификатор": незаконная инициализация constexpr сущности с неконстантным выражением |
| Ошибка компилятора C2128 | "функция": "alloc_text/same_seg" применимо только к функциям с C связыванием |
| Ошибка компилятора C2129 | статическая функция "идентификатор" объявлена, но не определена |
| Ошибка компилятора C2130 | #line ожидается строка, содержащая имя файла, найденное "token" |
| Ошибка компилятора C2131 | выражение не оценивается как константа |
| Ошибка компилятора C2132 | синтаксическая ошибка: непредвиденный идентификатор |
| Ошибка компилятора C2133 | "идентификатор": неизвестный размер |
| Ошибка компилятора C2134 | "function": вызов не приводит к константным выражениям |
| Ошибка компилятора C2135 | "идентификатор": нельзя применить оператор к битовой области |
| Ошибка компилятора C2136 | Контракт на создание API не разрешен |
| Ошибка компилятора C2137 | пустая символьная константа |
| Ошибка компилятора C2138 | незаконно определять перечисление без каких-либо элементов |
| Ошибка компилятора C2139 | "class": неопределенный класс не допускается в качестве аргумента для встроенного типа компилятора признака 'trait' |
| Ошибка компилятора C2140 | "type": тип, зависящий от параметра универсального типа, не допускается в качестве аргумента для встроенного признака типа компилятора "признак" |
| Ошибка компилятора C2141 | Переполнение размера массива |
| Ошибка компилятора C2142 | Объявления функций отличаются, переменные параметры указаны только в одном из них |
| Ошибка компилятора C2143 | синтаксическая ошибка: отсутствует "token1" до "token2" |
| Ошибка компилятора C2144 | синтаксическая ошибка: "тип" должен предшествовать "token2" |
| Ошибка компилятора C2145 | синтаксическая ошибка: отсутствует "token" перед идентификатором |
| Ошибка компилятора C2146 | ошибка синтаксиса: отсутствует "token" перед идентификатором "идентификатор" |
| Ошибка компилятора C2147 | синтаксическая ошибка: "token" — это новое ключевое слово |
| Ошибка компилятора C2148 | Общий размер массива не должен превышать 0xбайт значений |
| Ошибка компилятора C2149 | "идентификатор": именованное битовое поле не может иметь нулевой ширины |
| Ошибка компилятора C2150 | "идентификатор": битовое поле должно иметь тип int, "подписанный int" или "unsigned int" |
| Ошибка компилятора C2151 | несколько атрибутов языка |
| Ошибка компилятора C2152 | "идентификатор": указатели на функции с различными атрибутами |
| Ошибка компилятора C2153 | Целые литералы должны иметь по крайней мере одну цифру |
| Ошибка компилятора C2154 | "type": разрешен только тип перечисления в качестве аргумента для признака встроенного типа компилятора "__underlying_type". |
| Ошибка компилятора C2155 | '?': недопустимый левый операнд, ожидается арифметический или указательный тип |
| Ошибка компилятора C2156 | директива pragma должна находиться вне функции |
| Ошибка компилятора C2157 | "идентификатор": необходимо объявить перед использованием в списке pragma |
| Ошибка компилятора C2158 | "type": директива #pragma make_public в настоящее время поддерживается только для собственных типов, отличных от шаблонов |
| Ошибка компилятора C2159 | указано несколько классов хранения |
| Ошибка компилятора C2160 | "##" не может встречаться в начале макроопределения |
| Ошибка компилятора C2161 | "##" не может встречаться в конце макроопределения |
| Ошибка компилятора C2162 | ожидаемый формальный параметр макроса |
| Ошибка компилятора C2163 | "function": недоступно в качестве встроенной функции |
| Ошибка компилятора C2164 | "function": встроенная функция не объявлена |
| Ошибка компилятора C2165 | Модификатор: не удается изменить указатели на данные |
| Ошибка компилятора C2166 | левое значение указывает на объект-константу |
| Ошибка компилятора C2167 | "function": слишком много фактических параметров для встроенной функции |
| Ошибка компилятора C2168 | Function: слишком мало фактических параметров для встроенной функции |
| Ошибка компилятора C2169 | "function": встроенная функция, не может быть определена |
| Ошибка компилятора C2170 | "идентификатор": не объявлен как функция, не может быть встроенным |
| Ошибка компилятора C2171 | оператор "operator" не может применяться к операнду типа "type" |
| Ошибка компилятора C2172 | "function": фактический параметр не является указателем: номер параметра |
| Ошибка компилятора C2173 | "function": фактический параметр не является указателем: номер параметра, номер списка параметров |
| Ошибка компилятора C2174 | "function": фактический параметр имеет тип void: номер параметра, номер списка параметров |
| Ошибка компилятора C2175 | "локаль": недопустимая локаль |
| Ошибка компилятора C2176 | Оператор return не может использоваться в обработчике блока конструкции try, связанного с конструктором. |
| Ошибка компилятора C2177 | слишком большая константа |
| Ошибка компилятора C2178 | "идентификатор" нельзя объявить с помощью описателя "описатель" |
| Ошибка компилятора C2179 | "type": аргумент атрибута не может использовать параметры типа |
| Ошибка компилятора C2180 | Управляемое выражение имеет тип "type" |
| Ошибка компилятора C2181 | некорректное использование else без соответствующего if |
| Ошибка компилятора C2182 | "идентификатор": недопустимое использование "void" |
| Ошибка компилятора C2183 | синтаксическая ошибка: единица перевода пуста |
| Ошибка компилятора C2184 | "type": недопустимый тип для выражения __except |
| Ошибка компилятора C2185 | "идентификатор": недопустимое базовое выделение памяти |
| Ошибка компилятора C2186 | 'operator': незаконный операнд типа 'void' |
| Ошибка компилятора C2187 | синтаксическая ошибка: "token" была непредвиденной здесь |
| Ошибка компилятора C2188 | "число": слишком большое для широкого символа |
| Ошибка компилятора C2189 | Атрибут "alignas" не может применяться к битовой области, параметру функции, объявлению исключения или переменной, объявленной с классом хранилища register |
| Ошибка компилятора C2190 | первый список параметров длиннее второго списка |
| Ошибка компилятора C2191 | второй список параметров длиннее, чем первый |
| Ошибка компилятора C2192 | Объявление параметра "number" отличается |
| Ошибка компилятора C2193 | "идентификатор": уже в сегменте |
| Ошибка компилятора C2194 | "идентификатор": является текстовым сегментом |
| Ошибка компилятора C2195 | "identifier": является сегментом данных |
| Ошибка компилятора C2196 | Значение "value" уже используется |
| Ошибка компилятора C2197 | Функция: слишком много аргументов для вызова |
| Ошибка компилятора C2198 | function: слишком мало аргументов для вызова |
| Ошибка компилятора C2199 | синтаксическая ошибка: найден идентификатор ( в глобальной области (предполагалось объявление?) |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2001 — C3999, C7000 — C7999