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

В статьях этого раздела описываются предупреждения компилятора Microsoft C/C++ C4000 до C4199.

Внимание

Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может привести к возникновению многих последующих ошибок.

Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.

Примечание.

Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице при использовании F1 , и вы думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам об этом. Вы можете использовать кнопки обратной связи на этой странице, чтобы вызвать проблему документации на GitHub. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите "Отправить отзыв о > проблеме" или отправьте предложение с помощью справки > по отправке > отзывов > отправить предложение.

Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Learn Q&A . Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения в стеке Overflow .

Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.

Предупреждающие сообщения

Предупреждение Сообщение
Предупреждение компилятора C4000 НЕИЗВЕСТНОЕ ПРЕДУПРЕЖДЕНИЕ
Выберите команду технической поддержки в Visual C++
Меню справки или откройте файл справки технической поддержки для получения дополнительных сведений
Предупреждение компилятора (уровень 4, больше не выдаваемое) C4001 Нестандартное расширение "single строковый комментарий" было использовано
Предупреждение компилятора (уровень 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 Function: слишком много фактических параметров
Предупреждение компилятора (уровень 1) C4022 "function": несоответствие указателя для фактического параметра "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 перечислитель "идентификатор" в параметре enum "перечисление" не обрабатывается
Предупреждение компилятора (уровень 4) C4063 Регистр "идентификатор" не является допустимым значением для параметра enum"перечисление"
Предупреждение компилятора (уровень 4) C4064 параметр неполного enum перечисления
Предупреждение компилятора (уровень 3, выключен) C4065 Оператор switch содержит "default", но нет меток "case"
Предупреждение компилятора (уровень 3) C4066 знаки после первого в константе из двухбайтовых знаков пропускаются
Предупреждение компилятора (уровень 1) C4067 непредвиденные маркеры после директивы препроцессора — ожидается новая строка
Предупреждение компилятора (уровень 1) C4068 неизвестный pragma 'identifier'
Предупреждение компилятора C4069 long 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 ожидаемый "token"; найден идентификатор "идентификатор"
Предупреждение компилятора (уровень 1) C4085 Ожидается, что параметр pragma будет иметь значение "on" или "off"
Предупреждение компилятора (уровень 1) C4086 требуется параметр директивы pragma: "1", "2", "4", "8" или "16"
Предупреждение компилятора (уровень 1) C4087 Function: объявлен со списком параметров '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": "void" функция, возвращающая значение
Предупреждение компилятора (уровень 2) C4099 "идентификатор": имя типа, отображаемого с помощью "object_type1", теперь отображается с помощью "object_type2".
Предупреждение компилятора (уровень 4) C4100 "identifier": неуправляемый формальный параметр
Предупреждение компилятора (уровень 3 и уровень 4) C4101 "identifier": неотменяемая локальная переменная
Предупреждение компилятора (уровень 3) C4102 Label: unreferenced label
Предупреждение компилятора (уровень 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 оператор unary минус, примененный к типу без знака, результат по-прежнему не назначен
Предупреждение компилятора (уровень 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 "" преобразуется в "HRESULTbool"; вы уверены, что это то, что вы хотите?
Предупреждение компилятора (уровень 1) C4166 недопустимое соглашение о вызове для конструктора или деструктора
Предупреждение компилятора (уровень 1) C4167 "function": доступно только как встроенная функция
Предупреждение компилятора (уровень 1) C4168 Ограничение компилятора: из типов отладчика, удаление базы данных программы "база данных" и перестроение
Предупреждение компилятора (уровень 1) C4172 возврат адреса локальной переменной или временных optional_context
Предупреждение компилятора (уровень 1) C4174 "name": недоступно в качестве #pragma component
Предупреждение компилятора (уровень 1) C4175 #pragma component(browser, on): сведения о браузере должны быть изначально указаны в командной строке.
Предупреждение компилятора (уровень 1) C4176 "subcomponent": неизвестная подкомпонентная для #pragma component браузера
Предупреждение компилятора (уровень 1) C4177 #pragma Pragma следует использовать только в глобальных область или пространства имен область
Предупреждение компилятора (уровень 1) C4178 case константная "константная" слишком большая для типа выражения коммутатора
Предупреждение компилятора (уровень 4, больше не выдаваемое) C4179 '//*': синтаксический анализ как "" и/\* "/: путаница со стандартными комментариями "//"
Предупреждение компилятора (уровень 1) C4180 квалификатор, примененный к типу-функции, не имеет смысла; пропуск
Предупреждение компилятора C4181 квалификатор, применяемый к ссылочным типам; Игнорировать
Предупреждение компилятора (уровень 1) C4182 #includeУровень вложения nest_count глубоким; возможно бесконечное рекурсии
Предупреждение компилятора (уровень 1) C4183 "идентификатор": отсутствующий тип возвращаемого значения; предполагается, что функция-член возвращает "int"
Предупреждение компилятора (уровень 1) C4185 игнорируя неизвестный #import атрибут "атрибут"
Предупреждение компилятора (уровень 1) C4186 #атрибут импорта "атрибут" требует аргументов "argument_count"; игнорируется
Предупреждение компилятора (уровень 1) C4187 #import Атрибуты "attribute1" и "attribute2" несовместимы; оба игнорируются
Предупреждение компилятора (уровень 1) C4188 неполное константное выражение
Предупреждение компилятора (уровень 3 и уровень 4) C4189 "идентификатор": локальная переменная инициализирована, но не ссылается
Предупреждение компилятора (уровень 1) C4190 "identifier1" имеет указанную компоновку C, но возвращает идентификатор UDT2, несовместимый с C
Предупреждение компилятора (уровень 3, выключен) C4191 "operation": небезопасное преобразование из "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 message

См. также

Компилятор C/C++ и средства сборки ошибок и предупреждений
Предупреждения компилятора C4000 — C5999