Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В статьях этого раздела описываются предупреждения компилятора Microsoft C/C++ C4000 до C4199.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может устранить несколько последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений, классифицированных по инструментам и типу, в оглавлении на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице и думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам, используя кнопки обратной связи на этой странице. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите Справка > Отправить отзыв > Сообщить о проблемеили отправить предложение с помощью Справка > Отправить отзыв > Предложить функцию. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Q&A C++. Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения на Stack Overflow.
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Предупреждающие сообщения
| Предупреждение | Сообщение |
|---|---|
| Предупреждение компилятора (уровень 4, больше не выдаваемое) C4001 | Использовано нестандартное расширение "однострочный комментарий" |
| Предупреждение компилятора (уровень 1, ошибка) C4002 | слишком много аргументов для вызова макросов, таких как функция, "идентификатор" |
| Предупреждение компилятора (уровень 1, ошибка) C4003 | недостаточно аргументов для вызова макросов, таких как функция, "идентификатор" |
| Предупреждение компилятора (уровень 1) C4005 | "identifier": переопределение макроса |
| Предупреждение компилятора (уровень 1) C4006 |
#undef ожидается идентификатор |
| Предупреждение компилятора (уровень 3) C4007 | function: должен быть 'атрибутом' |
| Предупреждение компилятора (уровень 3) C4008 | "function": атрибут 'attribute' игнорируется |
| Предупреждение компилятора (уровень 1) C4010 | Однострочный комментарий содержит символ продолжения строки |
| Предупреждение компилятора (уровень 3) C4013 | "функция" не определена; при условии, что экстерн возвращает int |
| Предупреждение компилятора (уровень 1) C4015 | "идентификатор": тип битового поля должен быть целочисленным |
| Предупреждение компилятора (уровень 3) C4018 | Выражение: знаковое/беззнаковое несоответствие |
| Предупреждение компилятора (уровень 4) C4019 | пустой оператор в глобальной области видимости |
| Предупреждение компилятора (уровень 1) C4020 | Функция: слишком много фактических параметров |
| Предупреждение компилятора (уровень 1) C4022 | функция: несоответствие указателя для фактического параметра parameter_number |
| Предупреждение компилятора (уровень 1) C4023 | Function: указатель на основе, переданный в непрототипную функцию: параметр parameter_number |
| Предупреждение компилятора (уровень 1) C4024 | Function: различные типы для формальных и фактических параметров parameter_number |
| Предупреждение компилятора (уровень 1) C4025 | "function": указатель с базой, переданный в функцию с переменным количеством аргументов: параметр parameter_number |
| Предупреждение компилятора (уровень 1) C4026 | функция объявлена со списком формальных параметров |
| Предупреждение компилятора (уровень 1) C4027 | функция объявлена без списка формальных параметров |
| Предупреждение компилятора (уровень 1) C4028 | формальный параметр parameter_number отличается от объявления |
| Предупреждение компилятора (уровень 1) C4029 | объявленный формальный список параметров отличается от определения |
| Предупреждение компилятора (уровень 1) C4030 | первый список формальных параметров длиннее второго |
| Предупреждение компилятора (уровень 1) C4031 | второй формальный список параметров дольше первого списка |
| Предупреждение компилятора (уровень 4) C4032 | формальный параметр parameter_number имеет другой тип при повышении |
| Предупреждение компилятора (уровень 1) C4033 | Функция должна возвращать значение |
| Предупреждение компилятора (уровень 1) C4034 | sizeof возвращает значение 0 |
| Предупреждение компилятора (уровень 3) C4035 | "function": отсутствует возвращаемое значение |
| Предупреждение компилятора (уровень 1) C4036 | неименованный "тип" в качестве фактического параметра |
| Предупреждение компилятора (уровень 1) C4038 | Модификатор: недопустимый модификатор класса |
| Предупреждение компилятора (уровень 1) C4041 | Ограничение компилятора: прекращение вывода браузера |
| Предупреждение компилятора (уровень 1) C4042 | "идентификатор": имеет недопустимый класс хранилища |
| Предупреждение компилятора (уровень 1) C4045 | "array": массив ограничивает переполнение |
| Предупреждение компилятора (уровень 1) C4047 | "operator": "identifier1" отличается на уровнях косвенного обращения от "identifier2" |
| Предупреждение компилятора (уровень 1) C4048 | разные подстроки массива: "identifier1" и "identifier2" |
| Предупреждение компилятора (уровень 1) C4049 | Ограничение компилятора: прекращение выбросов номера строки |
| Предупреждение компилятора (уровень 1) C4051 | преобразование типа; возможна потеря данных |
| Предупреждение компилятора (уровень 1 и уровень 4) C4052 | объявления функции отличаются; одно из них содержит переменные аргументы |
| Предупреждение компилятора (уровень 4) C4053 | один пустой операнд для '?:' |
| Предупреждение компилятора (уровень 1) C4055 | "преобразование": от указателя данных "type1" до указателя функции "type2" |
| Предупреждение компилятора (уровень 2) C4056 | переполнение в арифметике с плавающей запятой при использовании констант |
| Предупреждение компилятора (уровень 4) C4057 | Оператор 'identifier1' отличается по косвенности обращения к слегка различным базовым типам от 'identifier2'. |
| Предупреждение компилятора (уровень 3, выключен) C4060 | Оператор switch не содержит меток case или default |
| Предупреждение компилятора (уровень 4, выключен) C4061 | перечислитель "идентификатор" в параметре enum "перечисление" не обрабатывается явным образом меткой case . |
| Предупреждение компилятора (уровень 4, выключен) C4062 | перечислитель "идентификатор" в операторе switch enum "перечисление" не обрабатывается |
| Предупреждение компилятора (уровень 4) C4063 | Значение "идентификатор" не является допустимым для переключателя enum"перечисление" |
| Предупреждение компилятора (уровень 4) C4064 | переключатель неполного enum перечисления |
| Предупреждение компилятора (уровень 3, выключен) C4065 | Оператор switch содержит "default", но метки "case" отсутствуют. |
| Предупреждение компилятора (уровень 3) C4066 | символы после первого в константе широких символов игнорируются |
| Предупреждение компилятора (уровень 1) C4067 | непредвиденные маркеры после директивы препроцессора — ожидается новая строка |
| Предупреждение компилятора (уровень 1) C4068 | неизвестный pragma 'identifier' |
| Предупреждение компилятора C4069 | long double имеет такую же точность, как и double |
| Предупреждение компилятора (уровень 3) C4073 | инициализаторы помещаются в область инициализации библиотеки |
| Предупреждение компилятора (уровень 1) C4074 | инициализаторы помещены в зарезервированную область инициализации компилятора |
| Предупреждение компилятора (уровень 1) C4075 | инициализаторы в неопознанной зоне инициализации |
| Предупреждение компилятора (уровень 1) C4076 | "type_modifier": нельзя использовать с типом "typename" |
| Предупреждение компилятора (уровень 1) C4077 | неизвестный параметр check_stack |
| Предупреждение компилятора (уровень 1) C4079 | непредвиденный маркер "token" |
| Предупреждение компилятора (уровень 1) C4080 | ожидаемый идентификатор для имени сегмента; найден "символ" |
| Предупреждение компилятора (уровень 1) C4081 | ожидался 'token1'; найден 'token2' |
| Предупреждение компилятора (уровень 1) C4083 | ожидается "токен"; найден идентификатор "идентификатор" |
| Предупреждение компилятора (уровень 1) C4085 | Ожидается, что параметр pragma будет иметь значение "on" или "off" |
| Предупреждение компилятора (уровень 1) C4086 | ожидается, что параметр директивы pragma равен "1", "2", "4", "8" или "16" |
| Предупреждение компилятора (уровень 1) C4087 | функция: объявлена со списком параметров 'void' |
| Предупреждение компилятора (уровень 1) C4088 | 'function': несоответствие указателя в фактическом параметре parameter_number, формальном параметре parameter_number |
| Предупреждение компилятора (уровень 1) C4089 | function: различные типы в фактическом параметре parameter_number, формальном параметре parameter_number |
| Предупреждение компилятора (уровень 1) C4090 | "operation": разные атрибуты "модификатор" |
| Предупреждение компилятора (уровень 1 и уровень 2) C4091 | "ключевое слово": игнорируется слева от типа, если переменная не объявлена |
| Предупреждение компилятора (уровень 4) C4092 | sizeof возвращает значение типа "unsigned long" |
| Предупреждение компилятора (уровень 2) C4094 | Незатегированный "токен" не содержит символов |
| Предупреждение компилятора (уровень 1) C4096 | "идентификатор": интерфейс не является COM-интерфейсом; не будет выдаваться в IDL" |
| Предупреждение компилятора (уровень 1) C4097 | Ожидается, что параметр pragma будет иметь значение "restore" или "off" |
| Предупреждение компилятора (уровень 1) C4098 | "function" функция, возвращающая значение |
| Предупреждение компилятора (уровень 2) C4099 | "идентификатор": имя типа, отображаемого с помощью "object_type1", теперь отображается с помощью "object_type2". |
| Предупреждение компилятора (уровень 4) C4100 | "identifier": неиспользуемый параметр |
| Предупреждение компилятора (уровень 3 и уровень 4) C4101 | "identifier": неотменяемая локальная переменная |
| Предупреждение компилятора (уровень 3) C4102 | Метка: метка без ссылки |
| Предупреждение компилятора (уровень 1) C4103 | Выравнивание изменилось после добавления заголовка, возможно, из-за отсутствия #pragma pack(pop) |
| Предупреждение компилятора (уровень 1) C4109 | непредвиденный идентификатор "идентификатор" |
| Предупреждение компилятора (уровень 1 и уровень 4) C4112 |
#line требует целого числа от 1 до line_count |
| Предупреждение компилятора (уровень 1) C4113 | "identifier1" отличается в списках параметров от "identifier2" |
| Предупреждение компилятора (уровень 1) C4114 | Повторное использование одного и того же квалификатора типа |
| Предупреждение компилятора (уровень 1 и уровень 4) C4115 | "type": определение именованного типа в скобках |
| Предупреждение компилятора (уровень 1) C4116 | Определение неназванного типа в скобках |
| Предупреждение компилятора (уровень 1) C4117 | имя макроса "имя" зарезервировано, "команда" игнорируется |
| Предупреждение компилятора (уровень 1) C41119 | указаны разные базы 'base1' и 'base2' |
| Предупреждение компилятора (уровень 1) C4120 | Несоответствие 'с базой/без базы' |
| Предупреждение компилятора (уровень 4) C4121 | "символ": выравнивание элемента зависело от параметров упаковки |
| Предупреждение компилятора (уровень 1) C4122 | "function: alloc_text применимо только к функциям с C-связью" |
| Предупреждение компилятора (уровень 1) C4123 | различные базовые выражения, указанные |
| Предупреждение компилятора (уровень 1) C4124 | __fastcall с проверкой стека неэффективен |
| Предупреждение компилятора (уровень 4) C4125 | десятичная цифра в конце восьмеричной escape-последовательности |
| Предупреждение компилятора (уровень 4) C4127 | условное выражение является константой |
| Предупреждение компилятора (уровень 1) C4129 | "символ": нераспознанная последовательность escape-символов |
| Предупреждение компилятора (уровень 4) C4130 | Оператор: логическая операция по адресу строковой константы |
| Предупреждение компилятора (уровень 4) C4131 | Функция: использует декларатор старого стиля |
| Предупреждение компилятора (уровень 4) C4132 | "object": const объект должен быть инициализирован |
| Предупреждение компилятора (уровень 1 и уровень 3) C4133 | "expression": несовместимые типы - от "type1" до "type2" |
| Предупреждение компилятора C4137 | 'function': отсутствует возвращаемое значение в функции с плавающей точкой |
| Предупреждение компилятора (уровень 1) C4138 | '*/' найден вне комментария |
| Предупреждение компилятора (уровень 1, ошибка) C4141 | Модификатор: используется несколько раз |
| Предупреждение компилятора (уровень 1) C4142 | "идентификатор": безопасное переопределение типа |
| Предупреждение компилятора (уровень 1) C4143 |
pragma "same_seg" не поддерживается; используйте __based выделение |
| Предупреждение компилятора (уровень 1) C4144 | Выражение "выражение": реляционное выражение в виде выражения switch |
| Предупреждение компилятора (уровень 1) C4145 | "expression1": реляционное выражение как выражение switch; возможная путаница с выражением "expression2" |
| Предупреждение компилятора (уровень 2) C4146 | оператор унарный минус, примененный к типу без знака, результат остается без знака |
| Предупреждение компилятора (уровень 2) C4150 | удаление указателя на неполный тип "type"; деструктор не вызывается |
| Предупреждение компилятора (уровень 4) C4152 | нестандартное расширение, преобразование указателя данных и функции в выражении |
| Предупреждение компилятора (уровень 1) C4153 | преобразование указателя функции или данных в выражении |
| Предупреждение компилятора (уровень 1) C4154 | удаление выражения массива; преобразование в предоставленный указатель |
| Предупреждение компилятора (уровень 1) C4155 | удаление выражения массива без использования формы 'delete' для массивов |
| Предупреждение компилятора (уровень 2) C4156 | удаление выражения массива без использования формы массива delete; Заменена форма массива |
| Предупреждение компилятора (уровень 1) C4157 | pragma игнорируется компилятором C |
| Предупреждение компилятора (уровень 1) C4158 | При условии #pragma pointers_to_members(full_generality, , что inheritance_type) |
| Предупреждение компилятора (уровень 3) C4159 |
#pragma
pragma(pop,...): выскочил ранее отправленный идентификатор "идентификатор" |
| Предупреждение компилятора (уровень 1) C4160 |
#pragma
pragma(pop,...): не нашли ранее отправленный идентификатор "идентификатор" |
| Предупреждение компилятора (уровень 3) C4161 |
#pragma
pragma(pop...): больше извлечений, чем записей |
| Предупреждение компилятора (уровень 1) C4162 | "идентификатор": не найдена функция с компоновкой C |
| Предупреждение компилятора (уровень 1) C4163 | "идентификатор": недоступно в качестве встроенной функции |
| Предупреждение компилятора (уровень 1) C4164 | "function": встроенная функция не объявлена |
| Предупреждение компилятора (уровень 3, выключен) C4165 | 'HRESULT' преобразуется в 'bool'; вы уверены, что хотите этого? |
| Предупреждение компилятора (уровень 1) C4166 | недопустимое соглашение о вызове для конструктора или деструктора |
| Предупреждение компилятора (уровень 1) C4167 | "function": доступно только как встроенная функция |
| Предупреждение компилятора (уровень 1) C4168 | Ограничение компилятора: недостаточно типов отладчика, удалите базу данных программы "база данных" и перестройте. |
| Предупреждение компилятора (уровень 1) C4172 | возврат адреса локальной переменной или временной переменной: optional_context |
| Предупреждение компилятора (уровень 1) C4174 | "name": недоступно в качестве #pragma component |
| Предупреждение компилятора (уровень 1) C4175 |
#pragma component(browser, on): сведения о браузере должны быть изначально указаны в командной строке. |
| Предупреждение компилятора (уровень 1) C4176 | "Подкомпонент": неизвестный подкомпонент для #pragma component браузера |
| Предупреждение компилятора (уровень 1) C4177 |
#pragma Pragma следует использовать только в глобальной области или области пространства имен. |
| Предупреждение компилятора (уровень 1) C4178 |
case константная "константная" слишком большая для типа выражения коммутатора |
| Предупреждение компилятора (уровень 4, больше не выдаваемое) C4179 | '//*': проанализировано как '/' и '/\*': путаница со стандартными комментариями '//' |
| Предупреждение компилятора (уровень 1) C4180 | квалификатор, примененный к типу функции, не имеет смысла; игнорируется |
| Предупреждение компилятора C4181 | квалификатор, применяемый к ссылочному типу; игнорируется |
| Предупреждение компилятора (уровень 1) C4182 |
#includeУровень вложения nest_count глубок; возможно бесконечная рекурсия. |
| Предупреждение компилятора (уровень 1) C4183 | "идентификатор": отсутствующий тип возвращаемого значения; предполагается, что функция-член возвращает "int" |
| Предупреждение компилятора (уровень 1) C4185 | игнорируется неизвестный атрибут "#" импорт |
| Предупреждение компилятора (уровень 1) C4186 |
#Атрибут импорта "атрибут" требует argument_count аргументов; Игнорировать |
| Предупреждение компилятора (уровень 1) C4187 |
#import Атрибуты "attribute1" и "attribute2" несовместимы; оба игнорируются |
| Предупреждение компилятора (уровень 1) C4188 | константное выражение не является целым |
| Предупреждение компилятора (уровень 3 и уровень 4) C4189 | "идентификатор": локальная переменная инициализирована, но не ссылается |
| Предупреждение компилятора (уровень 1) C4190 | "identifier1" имеет указанное связывание C, но возвращает "identifier2", который несовместим с C |
| Предупреждение компилятора (уровень 3, выключен) C4191 | "операция": небезопасное преобразование из "type_of_expression" в "type_required" Вызов функции с помощью результирующего указателя может привести к сбою программы |
| Предупреждение компилятора (уровень 3) C4192 | автоматическое исключение "идентификатор" при импорте библиотеки типов "library" |
| Предупреждение компилятора (уровень 3) C4193 |
#pragma warning(pop): нет соответствия '#pragma warning(push)' |
| Предупреждение компилятора (уровень 1) C4194 |
#pragma start_map_region не может быть вложенным; игнорируется |
| Предупреждение компилятора (уровень 1) C4195 |
#pragma stop_map_region используется без сопоставления #pragma start_map_region; игнорируется |
| Предупреждение компилятора (уровень 1) C4196 | ожидаемый "token1" или "token2"; найден "token3" |
| Предупреждение компилятора (уровень 3) C4197 | "type": верхний уровень volatile в приведении игнорируется |
| Предупреждение компилятора (уровень 1, уровень 2, уровень 3 и уровень 4) C4199 | сообщение |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Предупреждения компилятора C4000 — C5999