Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
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 C5200 do C5399.
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. W przypadku naprawiania problemów w projekcie zawsze należy zacząć od pierwszego zgłoszonego błędu lub ostrzeżenia i często ponownie skompilować. Jedna poprawka może spowodować, że wiele kolejnych błędów zniknie.
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 wylądowałeś na tej stronie, gdy użyto F1 i uważasz, że komunikat o błędzie lub ostrzeżeniu wymaga dodatkowego wyjaśnienia, daj nam znać. Możesz użyć przycisków opinii na tej stronie, aby zgłosić problem z dokumentacją w usłudze GitHub. 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, a następnie wybierz pozycję Pomoc Wyślij zgłoszenie o > problemie lub prześlij sugestię, korzystając z opcji Wyślij opinię w pomocy > > Wyślij sugestię>. Niektóre tematy błędów kompilatora zostały utworzone, które nie są emitowane przez kompilator, a teraz przekieruj do tej strony.
Dodatkową pomoc dotyczącą błędów i ostrzeżeń można znaleźć na forach pytań i odpowiedzi na platformie Microsoft Learn. 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ż wyszukać rozwiązanie 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 1) C5200 | funkcja "feature-name" wymaga flagi kompilatora "option-name" |
| Ostrzeżenie kompilatora (poziom 1) C5201 | deklaracja modułu może być wyświetlana tylko na początku jednostki tłumaczenia, chyba że jest używany fragment modułu globalnego |
| Ostrzeżenie kompilatora (poziom 1) C5202 | fragment modułu globalnego może zawierać tylko dyrektywy preprocesora |
| Ostrzeżenie kompilatora (poziom 1) C5203 | nazwa deklaratora nawiasu po "jawnym" będzie traktowana jako specyfikator jawny w języku C++20 |
| Ostrzeżenie kompilatora (poziom 3, wyłączony) C5204 | "type-name": klasa ma funkcje wirtualne, ale jej trywialny destruktor nie jest wirtualny; wystąpienia obiektów pochodnych z tej klasy mogą nie być poprawnie zdestrukturowane |
| Ostrzeżenie kompilatora (poziom 4) C5205 | usuwanie klasy abstrakcyjnej "type-name", która ma niezdefiniowany destruktor, powoduje niezdefiniowane zachowanie |
| Ostrzeżenie kompilatora (poziom 3) C5206 | dedukowane typy zwracane dla coroutines jest nietypowym rozszerzeniem |
| Ostrzeżenie kompilatora (poziom 1) C5207 | proste wymaganie potwierdza ważność wyrażenia "e->id". Czy masz na myśli "{ e } -> id"? Ostrzeżenie można pominąć przy użyciu polecenia "{ e->id }" |
| Ostrzeżenie kompilatora (poziom 1) C5208 | nienazwana klasa używana w typedef nazwie nie może deklarować składowych innych niż niestatyczne składowe danych, wyliczenia składowe lub klasy składowe |
| Ostrzeżenie kompilatora (poziom 1) C5209 | składnia języka C++20 dla przechwytywania init-capture została zmieniona na "& ... opt identifier initializer' |
| Ostrzeżenie kompilatora (poziom 1) C5210 | "name" nie jest prawidłowym odwołaniem do jednostki nagłówka; ignorując |
| Ostrzeżenie kompilatora (poziom 1) C5212 | "name" nie jest prawidłowym nazwanym odwołaniem; traktowanie go jako odwołania do pliku |
| Ostrzeżenie kompilatora (poziom 1) C5213 | Nazwane odwołanie jest traktowane jako nazwana partycja, ale nazwa nie jest określona; traktując jako odwołanie do pliku |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5214 | stosowanie modyfikatora do operandu z nietrwałym typem kwalifikowanym jest przestarzałe w języku C++20 |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5215 | "name" parametr funkcji z nietrwałym typem kwalifikowanym jest przestarzały w języku C++20 |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5216 | "name" nietrwały kwalifikowany typ zwracany jest przestarzały w języku C++20 |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5217 | ustrukturyzowana deklaracja powiązania, która zawiera zmienną, jest przestarzała w języku C++20 |
| Ostrzeżenie kompilatora (poziom 1) C5218 | niszczenie usunięcia może nie zachowywać się zgodnie z oczekiwaniami, gdy używane są niezgodne przełączniki "/Zc:sizedDealloc-" lub "/Zc:alignedNew-". |
| Ostrzeżenie kompilatora (poziom 2, wyłączony) C5219 | niejawna konwersja z "type-1" na "type-2", możliwa utrata danych |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5220 | "name": niestatyczny element członkowski danych z nietrwałym typem kwalifikowanym nie oznacza już, że kompilator wygenerował konstruktory kopiowania/przenoszenia i operatory przypisania kopiowania/przenoszenia nie są proste |
| Ostrzeżenie kompilatora (poziom 1) C5221 | xfg::rename jest przestarzała. |
| Ostrzeżenie kompilatora (poziom 3) C5222 | "attribute-name": wszystkie niezakresowe nazwy atrybutów są zarezerwowane na potrzeby przyszłej standaryzacji |
| Ostrzeżenie kompilatora (poziom 3) C5223 | wszystkie nazwy atrybutów w przestrzeni nazw atrybutów "msvc" są zarezerwowane dla implementacji |
| Ostrzeżenie kompilatora (poziom 3) C5224 | wszystkie nazwy atrybutów w przestrzeni nazw atrybutów "namespace-name" są zarezerwowane do przyszłej standaryzacji |
| Ostrzeżenie kompilatora (poziom 1) C5225 | "symbol": wyeksportowana funkcja śródliniowa zdefiniowana w prywatnym fragmentcie modułu jest niestandardowym rozszerzeniem |
| Ostrzeżenie kompilatora (poziom 1) C5226 | "symbol": wyeksportowany szablon zdefiniowany w fragmentze modułu prywatnego nie ma osiągalnego wystąpienia |
| Ostrzeżenie kompilatora (poziom 4) C5227 | niestandardowe rozszerzenie rozpoznano jako "symbol" na wartość "value", która nie jest widoczna /permissive- na. |
| Ostrzeżenie kompilatora (poziom 4) C5228 | niestandardowe rozszerzenie "identyfikator" rozpoznane jako element członkowski zależnej bazy. To wyszukiwanie nie jest dozwolone w obszarze /permissive-. |
| Ostrzeżenie kompilatora (poziom 4) C5229 | niestandardowe rozszerzenie, ukryta funkcja znajoma "function-name" została znaleziona przez wyszukiwanie nazw, które nie jest dozwolone w obszarze /permissive-. |
| Ostrzeżenie kompilatora C5230 | niestandardowe rozszerzenie "identifier" zostało rozpoznane jako "symbol-1" w obszarze /permissive. W /permissive- ramach tej funkcji zostanie rozpoznana wartość "symbol-2". |
| Ostrzeżenie kompilatora (poziom 3) C5231 | wyrażenie "co_await promise.final_suspend()" musi nie zgłaszać |
| Ostrzeżenie kompilatora (poziom 1) C5232 | w języku C++20 to porównanie wywołuje rekursywnie "name" |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5233 | Jawne przechwytywanie lambda "identyfikator" nie jest używane |
| Ostrzeżenie kompilatora (poziom 1) C5234 | błąd systemu plików: "nazwa pliku" nie jest prawidłową nazwą nagłówka; ignorowanie |
| Ostrzeżenie kompilatora (poziom 1) C5235 | Błąd analizy JSON: komunikat; ignorowanie nazwy pliku |
| Ostrzeżenie kompilatora (poziom 1) C5236 | JSON jest źle sformułowany: komunikat; ignorowanie nazwy pliku |
| Ostrzeżenie kompilatora (poziom 1) C5237 | Nie można rozpoznać wpisu jednostki nagłówka "name" do pliku nagłówka w 'nazwa_pliku'; ignorując wpis |
| Ostrzeżenie kompilatora (poziom 1) C5238 | błąd systemu plików: nie można otworzyć nazwy pliku do odczytu; ignorowanie |
| Ostrzeżenie kompilatora (poziom 4) C5239 | "symbol": potencjalnie zgłaszana funkcja wywoływana z funkcji zadeklarowanej __declspec(nothrow)przez funkcję . Niezdefiniowane zachowanie może wystąpić, jeśli zostanie zgłoszony wyjątek. |
| Ostrzeżenie kompilatora (poziom 4) C5240 | "attribute-name": atrybut jest ignorowany w tej pozycji składniowej |
| Ostrzeżenie kompilatora (poziom 1) C5241 | '/exportHeader' usage to lookup header-name is przestarzałe; preferuj '/headerName:name value=nazwa_pliku' |
| Ostrzeżenie kompilatora (poziom 1) C5242 | błąd składniowy w pragma "identifier" |
| Ostrzeżenie kompilatora (poziom 1, wyłączony) C5243 | "type-name": użycie niekompletnej klasy "class-name" może spowodować potencjalne naruszenie reguły definicji z powodu ograniczenia usługi ABI |
| Ostrzeżenie kompilatora (poziom 1) C5244 | Błąd "#include <nazwa pliku>" w widoku purview modułu "module-name-1". Rozważ przeniesienie tej dyrektywy przed deklaracją modułu lub zastąpienie dołączania tekstowego ciągiem "import <module-name-2>;". |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5245 | "function": funkcja niereferencja z wewnętrznym połączeniem została usunięta |
| Ostrzeżenie kompilatora (poziom 1, wyłączony) C5246 | "member": inicjowanie podobiektu powinno być opakowane w nawiasy klamrowe |
| Ostrzeżenie kompilatora (poziom 1, wyłączony) C5247 | sekcja "section-name" jest zarezerwowana dla inicjowania dynamicznego języka C++. Ręczne tworzenie sekcji zakłóca inicjowanie dynamiczne języka C++ i może prowadzić do niezdefiniowanego zachowania |
| Ostrzeżenie kompilatora (poziom 1, wyłączony) C5248 | sekcja "section-name" jest zarezerwowana dla inicjowania dynamicznego języka C++. Zmienne wprowadzone ręcznie do sekcji mogą być zoptymalizowane, a ich kolejność względem kompilatora wygenerowanych dynamicznych inicjatorów jest nieokreślona. |
| Ostrzeżenie kompilatora (poziom 1, wyłączony) C5249 | Pole bitowe typu "enumeration_name" ma nazwane moduły wyliczające o wartościach, których nie można przedstawić w danej szerokości pola bitowego "bitfield_width". |
| Ostrzeżenie kompilatora (poziom 3, wyłączony) C5250 | "function_name": funkcja wewnętrzna nie jest zadeklarowana. |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5251 | nazwa segmentu została zmieniona po dodaniu nagłówka |
| Ostrzeżenie kompilatora (poziom 4) C5252 | Wiele różnych typów spowodowało, że ten sam skrót typu XFG hash-value; pdB będzie rejestrować tylko informacje dla jednego z nich |
| Ostrzeżenie kompilatora (poziom 4) C5253 | nie lokalna lambda nie może mieć wartości domyślnej przechwytywania |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5254 | Funkcja języka "terse static assert" wymaga flagi kompilatora "/std:c++17" |
| Ostrzeżenie kompilatora (poziom 3) C5255 | napotkano nieokreślony znak dwukierunkowy: "U+XXXX" |
| Ostrzeżenie kompilatora (poziom 1, wyłączony) C5256 | "wyliczenie": deklaracja niezdefiniowania wyliczenia ze stałym typem bazowym jest dozwolona tylko jako deklaracja autonomiczna |
| Ostrzeżenie kompilatora (poziom 1 lub 4) C5257 | "wyliczenie": wyliczenie zostało wcześniej zadeklarowane bez stałego typu bazowego |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5258 | jawne przechwytywanie symbolu nie jest wymagane do tego użycia |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5259 | "wyspecjalizowany typ": jawna specjalizacja wymaga "szablonu <>" |
| Ostrzeżenie kompilatora (poziom 1) C5260 | zmienna stała "nazwa-zmiennej" ma wewnętrzne połączenie w dołączonym kontekście pliku nagłówka, ale zewnętrzne połączenie w kontekście zaimportowanej jednostki nagłówka; rozważ zadeklarowanie jej jako "wbudowanej", a także jeśli zostanie ona udostępniona między jednostkami tłumaczenia lub "statycznymi", aby wyrazić zamiar użycia go lokalnego do tej jednostki tłumaczenia |
| Ostrzeżenie kompilatora (poziom 2) C5261 | żaden typ liczby całkowitej nie może reprezentować wszystkich wartości modułu wyliczającego w wyliczenie "enum-name" |
| Ostrzeżenie kompilatora (poziom 1, błąd, wyłączanie) C5262 | występuje tutaj niejawny upadek; czy brakuje instrukcji break? Użyj [[fallthrough]] , gdy break instrukcja jest celowo pomijana między przypadkami |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5263 | wywoływanie elementu "std::move" w obiekcie tymczasowym uniemożliwia kopiowanie elizji |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5264 | "nazwa-zmiennej": zmienna "const" nie jest używana |
| Ostrzeżenie kompilatora (poziom 1) C5265 | Program nie może otworzyć ścieżki wyszukiwania "path" |
| Ostrzeżenie kompilatora (poziom 4, wyłączony) C5266 | Kwalifikator "const" w typie zwrotnym nie ma wpływu |
| Ostrzeżenie kompilatora C5267 | definicja niejawnego konstruktora/operatora przypisania dla "typu" jest przestarzała, ponieważ ma operatora przypisania dostarczonego przez użytkownika/konstruktora kopiowania |
| Ostrzeżenie kompilatora (poziom 1) C5268 | Nie można przydzielić pamięci pod stałym adresem 0x. Użyj /Yb polecenia , aby określić określoną bazę adresów, jeśli wymagane są pliki pch identyczne bitowo. |
| Ostrzeżenie kompilatora (poziom 1) C5269 | Nie można przydzielić pamięci PCH pod stałym adresem 0x. Użyj /Ym polecenia , aby określić określoną bazę adresów, jeśli wymagane są pliki pch identyczne bitowo. |
| Ostrzeżenie kompilatora (poziom 3) C5270 | Wartość "value" nie jest dozwolona dla opcji "switch name"; dozwolone wartości to: lista wartości |
| Ostrzeżenie kompilatora (poziom 4) C5271 | wcześniej zaimportowany zestaw "assembly1" ma taką samą nazwę jak importowany zestaw "assembly2". Czy jest to zamierzone? |
| Ostrzeżenie kompilatora (poziom 1) C5272 | zgłaszanie obiektu typu nie kopiowalnego typu "typ" jest nietypowe. Jeśli kopia jest potrzebna w czasie wykonywania, zostanie wykonana tak, jakby przez memcpy. |
| Ostrzeżenie kompilatora (poziom 1) C5273 | zmiana zachowania: _Alignas w przypadku typu anonimowego nie są już ignorowane (promowane elementy członkowskie będą wyrównane) |
| Ostrzeżenie kompilatora (poziom 1) C5274 | zmiana zachowania: _Alignas nie ma już zastosowania do typu "typ" (dotyczy tylko zadeklarowanych obiektów danych) |
| Ostrzeżenie kompilatora (błąd) C5275 | Zestaw fasady "name" importowany w obszarze "/clr"; brakuje opcji "/clr:netcore"? |
| Ostrzeżenie kompilatora (poziom 1, błąd) C5300 | '#pragma niepodzielne': lewy operand operatora musi być zgodny z lewą stroną wyrażenia przypisania |
| Ostrzeżenie kompilatora (poziom 1) C5301 | "#pragma omp for": "loop-index" zwiększa się, podczas gdy warunek pętli używa wartości "comparison"; non-terminating loop? |
| Ostrzeżenie kompilatora (poziom 1) C5302 | "#pragma omp for": "loop-index" zmniejsza się, podczas gdy warunek pętli używa "porównania"; pętla niezwiązana z kończeniem? |
| Ostrzeżenie kompilatora (poziom 1) C5303 | funkcja oznaczona za pomocą [[msvc::intrinsic]] polecenia nie powodowała rzutu bez operacji |
| Ostrzeżenie kompilatora (poziom 1) C5304 | deklaracja wyznaczona przy użyciu deklaracji "name1" wyeksportowana z tego modułu ma połączenie wewnętrzne i używa takiej nazwy poza modułem jest źle sformułowana; rozważ zadeklarowanie "name2" doinline użycia poza tym modułem |
| Ostrzeżenie kompilatora (poziom 1) C5305 | "name": jawna deklaracja wystąpienia zgodna z jawną definicją wystąpienia jest ignorowana |
Zobacz też
Błędy i ostrzeżenia kompilatora C/C++ i narzędzi kompilacji
Ostrzeżenia kompilatora C4000 — C5999