Udostępnij za pośrednictwem


Ostrzeżenia kompilatora Microsoft C/C++ od C4000 do C4199

W artykułach w tej sekcji opisano komunikaty ostrzegawcze kompilatora Microsoft C/C++ od C4000 do C4199.

Ważne

Kompilatory i narzędzia kompilacji programu Visual Studio mogą zgłaszać wiele rodzajów błędów i ostrzeżeń. Po znalezieniu błędu lub ostrzeżenia narzędzia kompilacji mogą podjąć założenia dotyczące intencji kodu i próby kontynuowania, dzięki czemu więcej problemów można zgłaszać w tym samym czasie. Jeśli narzędzia przyjmą błędne założenie, późniejsze błędy lub ostrzeżenia mogą nie mieć zastosowania do projektu. Podczas naprawiania problemów w projekcie, zaczynaj od pierwszego zgłoszonego błędu lub ostrzeżenia i często ponownie kompiluj. Jedna poprawka może rozwiązać wiele kolejnych błędów.

Aby uzyskać pomoc dotyczącą konkretnego komunikatu diagnostycznego w programie Visual Studio, wybierz go w oknie Dane wyjściowe i naciśnij F1 . Program Visual Studio otwiera stronę dokumentacji dla tego błędu, jeśli istnieje. Możesz również użyć narzędzia wyszukiwania w górnej części strony, aby znaleźć artykuły dotyczące określonych błędów lub ostrzeżeń. Możesz też przejrzeć listę błędów i ostrzeżeń według narzędzia i wpisać spis treści na tej stronie.

Uwaga

Nie każdy błąd lub ostrzeżenie programu Visual Studio nie jest udokumentowane. W wielu przypadkach komunikat diagnostyczny zawiera wszystkie dostępne informacje. Jeśli trafisz na tę stronę i pomyśl, że komunikat o błędzie lub ostrzeżeniu wymaga dodatkowego wyjaśnienia, daj nam znać, korzystając z przycisków opinii na tej stronie. Jeśli uważasz, że błąd lub ostrzeżenie jest nieprawidłowe lub znaleziono inny problem z zestawem narzędzi, zgłoś problem z produktem w witrynie Społeczność deweloperów. Możesz również wysłać opinię i wprowadzić usterki w środowisku IDE. W programie Visual Studio przejdź do paska menu i wybierz pozycję Pomoc > Wyślij opinię > Zgłoś problemlub prześlij sugestię przy użyciu Pomoc > Wyślij opinię > Zasugeruj funkcję. Zostały utworzone pewne tematy błędów kompilatora, które nie są generowane przez kompilator i teraz przekierowują do tej strony.

Dodatkową pomoc dotyczącą błędów i ostrzeżeń można znaleźć na forach Microsoft Q&A C++. Możesz też wyszukać numer błędu lub ostrzeżenia w witrynie Społeczności deweloperów programu Visual Studio C++. Możesz również przeszukać Stack Overflow, aby znaleźć rozwiązania.

Aby uzyskać linki do dodatkowych zasobów pomocy i społeczności, zobacz Visual C++ Help and Community (Pomoc i społeczność języka Visual C++).

Komunikaty ostrzegawcze

Ostrzeżenie Komunikat
Ostrzeżenie kompilatora (poziom 4, już nie emitowany) C4001 Użyto niestandardowego rozszerzenia "komentarz z jednym wierszem"
ostrzeżenie kompilatora (poziom 1, błąd) C4002 zbyt wiele argumentów dla wywołania makra przypominającego funkcję "identyfikator"
ostrzeżenie kompilatora (poziom 1, błąd) C4003 za mało argumentów wywołania makra przypominającego funkcję "identyfikator"
Ostrzeżenie kompilatora (poziom 1) C4005 "identifier": ponowne zdefiniowanie makr
Ostrzeżenie kompilatora (poziom 1) C4006 #undef oczekiwany identyfikator
Ostrzeżenie kompilatora (poziom 3) C4007 "function": musi być "atrybutem"
Ostrzeżenie kompilatora (poziom 3) C4008 "function": "atrybut" atrybut ignorowany
Ostrzeżenie kompilatora (poziom 1) C4010 komentarz jednowierszowy zawiera znak kontynuacji wiersza
Ostrzeżenie kompilatora (poziom 3) C4013 "function" niezdefiniowany; przy założeniu, że extern zwraca int
Ostrzeżenie kompilatora (poziom 1) C4015 "identifier": typ pola bitowego musi być integralną częścią
Ostrzeżenie kompilatora (poziom 3) C4018 Wyrażenie: niezgodność ze znakiem/bez znaku
Ostrzeżenie kompilatora (poziom 4) C4019 pusta instrukcja w zakresie globalnym
Ostrzeżenie kompilatora (poziom 1) C4020 "function": zbyt wiele rzeczywistych parametrów
Ostrzeżenie kompilatora (poziom 1) C4022 'function': niezgodność wskaźnika dla rzeczywistego parametru parameter_number
Ostrzeżenie kompilatora (poziom 1) C4023 "funkcja": wskaźnik przekazywany do funkcji bez prototypu: parametr numer_parametru
Ostrzeżenie kompilatora (poziom 1) C4024 "funkcja": różne typy parametrów formalnych i rzeczywistych parameter_number
Ostrzeżenie kompilatora (poziom 1) C4025 "funkcja": wskaźnik oparty na przekazywaniu do funkcji z argumentami zmiennych: parametr parameter_number
Ostrzeżenie kompilatora (poziom 1) C4026 funkcja zadeklarowana z listą parametrów formalnych
Ostrzeżenie kompilatora (poziom 1) C4027 funkcja zadeklarowana bez listy parametrów formalnych
Ostrzeżenie kompilatora (poziom 1) C4028 parametr formalny parameter_number inny niż deklaracja
Ostrzeżenie kompilatora (poziom 1) C4029 zadeklarowana lista parametrów formalnych różni się od definicji
Ostrzeżenie kompilatora (poziom 1) C4030 pierwsza lista parametrów formalnych dłuższa niż druga lista
Ostrzeżenie kompilatora (poziom 1) C4031 druga lista parametrów formalnych dłuższa niż pierwsza lista
Ostrzeżenie kompilatora (poziom 4) C4032 formalny parametr parameter_number ma inny typ podczas promocji
Ostrzeżenie kompilatora (poziom 1) C4033 Funkcja musi zwracać wartość
Ostrzeżenie kompilatora (poziom 1) C4034 funkcja sizeof zwraca wartość 0
Ostrzeżenie kompilatora (poziom 3) C4035 "function": brak zwracanej wartości
Ostrzeżenie kompilatora (poziom 1) C4036 nienazwany "typ" jako rzeczywisty parametr
Ostrzeżenie kompilatora (poziom 1) C4038 "modyfikator": niedozwolony modyfikator klas
Ostrzeżenie kompilatora (poziom 1) C4041 Limit kompilatora: zakończenie danych wyjściowych przeglądarki
Ostrzeżenie kompilatora (poziom 1) C4042 "identifier": ma złą klasę przechowywania
Ostrzeżenie kompilatora (poziom 1) C4045 "przepełnienie granic tablicy"
Ostrzeżenie kompilatora (poziom 1) C4047 "operator": "identifier1" różni się stopniem pośrednictwa od "identifier2"
Ostrzeżenie kompilatora (poziom 1) C4048 różne subscripty tablicowe: "identifier1" i "identifier2"
Ostrzeżenie kompilatora (poziom 1) C4049 Limit kompilatora: zakończenie generowania numeru wiersza
Ostrzeżenie kompilatora (poziom 1) C4051 konwersja typów; możliwa utrata danych
Ostrzeżenie kompilatora (poziom 1 i poziom 4) C4052 deklaracje funkcji różne; jeden zawiera argumenty zmiennych
Ostrzeżenie kompilatora (poziom 4) C4053 jeden pusty operand dla „?:
Ostrzeżenie kompilatora (poziom 1) C4055 "konwersja" : ze wskaźnika danych "type1" do wskaźnika funkcji "type2"
Ostrzeżenie kompilatora (poziom 2) C4056 przepełnienie w arytmetyce stałych zmiennoprzecinkowych
Ostrzeżenie kompilatora (poziom 4) C4057 "operator": "identifier1" różni się w poziomie pośrednim od nieco innych typów bazowych niż "identifier2"
Ostrzeżenie kompilatora (poziom 3, wyłączony) C4060 instrukcja switch nie zawiera etykiet 'case' ani 'default'
Ostrzeżenie kompilatora (poziom 4, wyłączony) C4061 moduł "identyfikator" w przełączniku enum "wyliczenie" nie jest jawnie obsługiwany przez etykietę case
Ostrzeżenie kompilatora (poziom 4, wyłączony) C4062 moduł wyliczający "identyfikator" w przełączniku enum "wyliczenia" nie jest obsługiwany
Ostrzeżenie kompilatora (poziom 4) C4063 przypadek "identyfikator" nie jest prawidłową wartością dla przełącznika enum "wyliczenie"
Ostrzeżenie kompilatora (poziom 4) C4064 przełącznik enum niekompletnego "wyliczenia"
Ostrzeżenie kompilatora (poziom 3, wyłączony) C4065 instrukcja switch zawiera 'default', ale nie etykiety 'case'
Ostrzeżenie kompilatora (poziom 3) C4066 znaki wykraczające poza pierwszy w stałej o szerokim znaku ignorowane
Ostrzeżenie kompilatora (poziom 1) C4067 nieoczekiwane tokeny po dyrektywie preprocesora — oczekiwano nowego wiersza
Ostrzeżenie kompilatora (poziom 1) C4068 nieznany pragma "identyfikator"
Ostrzeżenie kompilatora C4069 "long double" ma taką samą precyzję jak "double"
Ostrzeżenie kompilatora (poziom 3) C4073 inicjalizatory umieszczone w obszarze inicjalizacji biblioteki
Ostrzeżenie kompilatora (poziom 1) C4074 inicjatory umieszczone w obszarze inicjowania zarezerwowanego kompilatora
Ostrzeżenie kompilatora (poziom 1) C4075 inicjatory umieszczone w nierozpoznanym obszarze inicjowania
Ostrzeżenie kompilatora (poziom 1) C4076 "type_modifier": nie można używać z typem "typename"
Ostrzeżenie kompilatora (poziom 1) C4077 nieznana opcja check_stack
Ostrzeżenie kompilatora (poziom 1) C4079 nieoczekiwany znak "token"
Ostrzeżenie kompilatora (poziom 1) C4080 oczekiwany identyfikator nazwy segmentu; znaleziono 'symbol'
Ostrzeżenie kompilatora (poziom 1) C4081 oczekiwano "token1"; znaleziono "token2"
Ostrzeżenie kompilatora (poziom 1) C4083 oczekiwany "token"; znaleziony identyfikator "identyfikator"
Ostrzeżenie kompilatora (poziom 1) C4085 oczekiwany parametr pragma ma być "on" lub "off"
Ostrzeżenie kompilatora (poziom 1) C4086 oczekiwany parametr pragma ma mieć wartość "1", "2", "4", "8" lub "16"
Ostrzeżenie kompilatora (poziom 1) C4087 "function": zadeklarowana z listą parametrów "void"
Ostrzeżenie kompilatora (poziom 1) C4088 'funkcja': niezgodność wskaźnika w rzeczywistym parametrze numer_parametru, parametr formalny numer_parametru
Ostrzeżenie kompilatora (poziom 1) C4089 "funkcja": różne typy w rzeczywistym parametrze parameter_number, formalnym parametrze parameter_number
Ostrzeżenie kompilatora (poziom 1) C4090 "operation": różne kwalifikatory "modyfikatora"
Ostrzeżenie kompilatora (poziom 1 i poziom 2) C4091 "słowo kluczowe": ignorowane po lewej stronie "typu", gdy żadna zmienna nie jest zadeklarowana
Ostrzeżenie kompilatora (poziom 4) C4092 funkcja sizeof zwraca wartość "niepodpisane długie"
Ostrzeżenie kompilatora (poziom 2) C4094 nieoznakowany "token" nie zadeklarował żadnych symboli
Ostrzeżenie kompilatora (poziom 1) C4096 "identifier": interfejs nie jest interfejsem COM; nie będzie emitowany do IDL
Ostrzeżenie kompilatora (poziom 1) C4097 oczekiwany parametr pragma ma być "restore" lub "off"
Ostrzeżenie kompilatora (poziom 1) C4098 "function": funkcja "void" zwracająca wartość
Ostrzeżenie kompilatora (poziom 2) C4099 "identifier": nazwa typu widoczna po raz pierwszy przy użyciu polecenia "object_type1" jest teraz widoczna przy użyciu polecenia "object_type2"
Ostrzeżenie kompilatora (poziom 4) C4100 'identyfikator': parametr nieodwołany
Ostrzeżenie kompilatora (poziom 3 i poziom 4) C4101 'identifier': unreferenced local variable (identyfikator): nieużywana zmienna lokalna
Ostrzeżenie kompilatora (poziom 3) C4102 "label": nieodniesiona etykieta
Ostrzeżenie kompilatora (poziom 1) C4103 wyrównanie zmienione po włączeniu nagłówka, może być spowodowane brakiem #pragma pack(pop)
Ostrzeżenie kompilatora (poziom 1) C4109 nieoczekiwany identyfikator "identyfikator"
Ostrzeżenie kompilatora (poziom 1 i poziom 4) C4112 #line wymaga liczby całkowitej z zakresu od 1 do line_count
Ostrzeżenie kompilatora (poziom 1) C4113 "identifier1" różni się na listach parametrów od "identifier2"
Ostrzeżenie kompilatora (poziom 1) C4114 kwalifikator tego samego typu używany więcej niż raz
Ostrzeżenie kompilatora (poziom 1 i poziom 4) C4115 "type": nazwana definicja typu w nawiasach
Ostrzeżenie kompilatora (poziom 1) C4116 nienazwana definicja typu w nawiasach
Ostrzeżenie kompilatora (poziom 1) C4117 nazwa makra "name" jest zarezerwowana, "polecenie" ignorowane
Ostrzeżenie kompilatora (poziom 1) C4119 określone różne bazy "base1" i "base2"
Ostrzeżenie kompilatora (poziom 1) C4120 niezgodność między opartymi a nieopartymi założeniami
Ostrzeżenie kompilatora (poziom 4) C4121 "symbol": wyrównanie elementu członkowskiego było wrażliwe na pakowanie
Ostrzeżenie kompilatora (poziom 1) C4122 "function": alloc_text dotyczy tylko funkcji o powiązaniu C
Ostrzeżenie kompilatora (poziom 1) C4123 określone różne wyrażenia podstawowe
Ostrzeżenie kompilatora (poziom 1) C4124 Sprawdzanie stosu w __fastcall jest nieefektywne
Ostrzeżenie kompilatora (poziom 4) C4125 Cyfra dziesiętna kończy sekwencję ucieczki ósemkowej
Ostrzeżenie kompilatora (poziom 4) C4127 wyrażenie warunkowe jest stałe
Ostrzeżenie kompilatora (poziom 1) C4129 "character": nierozpoznana sekwencja escape
Ostrzeżenie kompilatora (poziom 4) C4130 "operator": operacja logiczna na adres stałej tekstowej
Ostrzeżenie kompilatora (poziom 4) C4131 "function": używa deklaratora starego stylu
Ostrzeżenie kompilatora (poziom 4) C4132 "object": const obiekt powinien zostać zainicjowany
Ostrzeżenie kompilatora (poziom 1 i poziom 3) C4133 "expression": niezgodne typy — od "type1" do "type2"
Ostrzeżenie kompilatora C4137 'function': brak wartości zwracanej z funkcji zmiennoprzecinkowej
Ostrzeżenie kompilatora (poziom 1) C4138 "*/" znaleziony poza komentarzem
ostrzeżenie kompilatora (poziom 1, błąd) C4141 "modyfikator": używany więcej niż raz
Ostrzeżenie kompilatora (poziom 1) C4142 "identyfikator": łagodne ponowne zdefiniowanie typu
Ostrzeżenie kompilatora (poziom 1) C4143 pragma "same_seg" nie jest obsługiwane; użyj __based alokacji
Ostrzeżenie kompilatora (poziom 1) C4144 'wyrażenie': wyrażenie relacyjne jako wyrażenie przełącznika
Ostrzeżenie kompilatora (poziom 1) C4145 'Wyrażenie1': wyrażenie relacyjne jako wyrażenie przełącznika; możliwe pomylenie z "wyrażenie2"
Ostrzeżenie kompilatora (poziom 2) C4146 jednoargumentowy operator minus zastosowany do typu bez znaku, wynik nadal niepodpisany
Ostrzeżenie kompilatora (poziom 2) C4150 usunięcie wskaźnika do niekompletnego typu "type"; destruktor nie został wywołany
Ostrzeżenie kompilatora (poziom 4) C4152 niestandardowe rozszerzenie, konwersja wskaźnika funkcji/danych w wyrażeniu
Ostrzeżenie kompilatora (poziom 1) C4153 funkcja lub konwersja wskaźnika danych w wyrażeniu
Ostrzeżenie kompilatora (poziom 1) C4154 usunięcie wyrażenia tablicowego; konwersja na dostarczony wskaźnik
Ostrzeżenie kompilatora (poziom 1) C4155 usunięcie wyrażenia tablicy bez użycia formularza tablicy "delete"
Ostrzeżenie kompilatora (poziom 2) C4156 usunięcie wyrażenia tablicowego bez użycia formy tablicowej 'delete'; zamiast tego zastosowano formę tablicową
Ostrzeżenie kompilatora (poziom 1) C4157 pragma został zignorowany przez kompilator języka C
Ostrzeżenie kompilatora (poziom 1) C4158 Zakładając #pragma pointers_to_members(full_generality, typ_dziedziczenia)
Ostrzeżenie kompilatora (poziom 3) C4159 #pragma pragma(pop,...): został wcześniej przywołany identyfikator "identyfikator"
Ostrzeżenie kompilatora (poziom 1) C4160 #pragma pragma(pop,...): nie odnaleziono wcześniej wypchniętego identyfikatora ''
Ostrzeżenie kompilatora (poziom 3) C4161 #pragma pragma(pop...): więcej wyskakujących okienek niż wypychania
Ostrzeżenie kompilatora (poziom 1) C4162 "identifier": nie znaleziono funkcji z powiązaniem C
Ostrzeżenie kompilatora (poziom 1) C4163 "identifier": niedostępny jako funkcja wewnętrzna
Ostrzeżenie kompilatora (poziom 1) C4164 "function": funkcja wewnętrzna nie jest zadeklarowana
Ostrzeżenie kompilatora (poziom 3, wyłączony) C4165 Element "HRESULT" jest konwertowany na 'bool'; czy na pewno jest to, czego chcesz?
Ostrzeżenie kompilatora (poziom 1) C4166 niedozwolona konwencja wywoływania konstruktora/destruktora
Ostrzeżenie kompilatora (poziom 1) C4167 "function": dostępne tylko jako funkcja wewnętrzna
Ostrzeżenie kompilatora (poziom 1) C4168 Limit kompilatora: brak typów debugera, usuwanie bazy danych programu "baza danych" i ponowne kompilowanie
Ostrzeżenie kompilatora (poziom 1) C4172 zwracanie adresu zmiennej lokalnej lub tymczasowej optional_context
Ostrzeżenie kompilatora (poziom 1) C4174 "name": niedostępne jako #pragma component
Ostrzeżenie kompilatora (poziom 1) C4175 #pragma component(browser, on): informacje o przeglądarce muszą być początkowo określone w wierszu polecenia
Ostrzeżenie kompilatora (poziom 1) C4176 "Podkomponent": nieznany dla przeglądarki #pragma component
Ostrzeżenie kompilatora (poziom 1) C4177 #pragma "pragma" należy używać tylko w zakresie globalnym lub zakresie przestrzeni nazw
Ostrzeżenie kompilatora (poziom 1) C4178 case stała "stała" zbyt duża dla typu wyrażenia przełącznika
Ostrzeżenie kompilatora (poziom 4, już nie emitowany) C4179 "//*": analizowane jako "/" i "/\*": pomylenie ze standardowymi komentarzami "//"
Ostrzeżenie kompilatora (poziom 1) C4180 kwalifikator zastosowany do typu funkcji nie ma znaczenia; Ignorowane
Ostrzeżenie kompilatora C4181 kwalifikator zastosowany do typu odwołania; ignorowane
Ostrzeżenie kompilatora (poziom 1) C4182 #include poziom zagnieżdżania jest nest_count głęboki; możliwa nieskończona rekursja
Ostrzeżenie kompilatora (poziom 1) C4183 "identifier": brak typu zwracanego; przyjęto założenie, że jest funkcją składową zwracającą element "int"
Ostrzeżenie kompilatora (poziom 1) C4185 Pomijanie nieznanego atrybutu importowania #atrybutu ''
Ostrzeżenie kompilatora (poziom 1) C4186 # zaimportować atrybutatrybutu" wymaga argumentów argument_count; Ignorowane
Ostrzeżenie kompilatora (poziom 1) C4187 #import atrybuty "attribute1" i "attribute2" są niezgodne; oba atrybuty są ignorowane
Ostrzeżenie kompilatora (poziom 1) C4188 wyrażenie stałe nie jest całkowite
Ostrzeżenie kompilatora (poziom 3 i poziom 4) C4189 "identifier": zmienna lokalna jest inicjowana, ale nie odwołuje się do niej
Ostrzeżenie kompilatora (poziom 1) C4190 "identyfikator1" ma określone powiązanie języka C, ale zwraca "identyfikator2", który jest niezgodny z językiem C
Ostrzeżenie kompilatora (poziom 3, wyłączony) C4191 "operation": niebezpieczna konwersja z "type_of_expression" na "type_required"
Wykonywanie wywołania funkcji przy użyciu wynikowego wskaźnika może spowodować niepowodzenie programu
Ostrzeżenie kompilatora (poziom 3) C4192 automatyczne wykluczanie identyfikatora podczas importowania biblioteki typów "library"
Ostrzeżenie kompilatora (poziom 3) C4193 #pragma warning(pop): Nie znaleziono pasującego '#pragma warning(push)'
Ostrzeżenie kompilatora (poziom 1) C4194 #pragma start_map_region nie można zagnieżdżać; ignorowane
Ostrzeżenie kompilatora (poziom 1) C4195 #pragma stop_map_region używane bez dopasowania #pragma start_map_region; ignorowane
Ostrzeżenie kompilatora (poziom 1) C4196 oczekiwano tokenu "token1" lub "token2"; znaleziono "token3"
Ostrzeżenie kompilatora (poziom 3) C4197 "typ": rzutowanie najwyższego poziomu volatile jest ignorowane
Ostrzeżenie kompilatora (poziom 1, poziom 2, poziom 3 i poziom 4) C4199 message

Zobacz też

Błędy i ostrzeżenia kompilatora C/C++ i narzędzi kompilacji
Ostrzeżenia kompilatora C4000 — C5999