Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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