Предупреждения компилятора Microsoft C/C++ C4000 до C4199

В статьях этого раздела описываются предупреждения компилятора 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