Microsoft C/C++-Compilerwarnungen C4000 bis C4199
Die Artikel in diesem Abschnitt beschreiben die Meldungen der Microsoft C/C++-Compilerwarnungen C4000 bis C4199.
Wichtig
Die Visual Studio-Compiler und -Buildtools können vielen Arten von Fehlern und Warnungen generieren. Nachdem ein Fehler oder eine Warnung erkannt wurde, können die Buildtools Annahmen über den beabsichtigten Zweck des Codes machen, und sie versuchen, den Code weiterhin auszuführen, sodass mehrere Probleme gleichzeitig gemeldet werden können. Wenn die Tools allerdings von falschen Annahmen ausgehen, sind spätere Fehler oder Warnungen möglicherweise nicht auf das Projekt anwendbar. Wenn Sie Probleme im Projekt beheben, sollten Sie immer mit dem ersten gemeldeten Problem (Fehler oder Warnung) beginnen, und häufig einen Rebuild für das Projekt ausführen. Durch eine Fehlerbehebung können möglicherweise viele nachfolgende Fehler behoben werden.
Um Hilfe zu einer bestimmten Diagnosenachricht in Visual Studio zu erhalten, wählen Sie sie im Fenster Ausgabe aus, und drücken Sie die Taste F1. Visual Studio öffnet die Dokumentationsseite für diesen Fehler, sofern vorhanden. Sie können auch das Suchtool oben auf der Seite verwenden, um Artikel zu bestimmten Fehlern oder Warnungen zu finden. Oder durchsuchen Sie die Liste der Fehler und Warnungen nach Tool und Typ im Inhaltsverzeichnis auf dieser Seite.
Hinweis
Nicht jeder Visual Studio-Fehler oder jede Warnung ist dokumentiert. In vielen Fällen sind bereits alle verfügbaren Informationen in der Fehlermeldung enthalten. Wenn Sie diese Seite erreicht haben, nachdem Sie F1 gedrückt haben, und der Ansicht sind, dass die Fehlermeldung oder Warnmeldung zusätzliche Erläuterungen benötigt, teilen Sie uns dies mit. Mithilfe der Feedbackschaltflächen auf dieser Seite können Sie ein Dokumentationsproblem auf GitHub melden. Wenn Sie glauben, dass der Fehler oder die Warnung falsch ist oder Sie ein weiteres Problem mit dem Toolset gefunden haben, melden Sie ein Produktproblem auf der Developer Community-Website. Sie können auch innerhalb der IDE Feedback senden und Fehler eingeben. Wechseln Sie in Visual Studio zur Menüleiste, und wählen Sie Hilfe > Feedback senden > Ein Problem melden aus, oder senden Sie einen Vorschlag über Hilfe > Feedback senden > Vorschlag senden. Es wurden einige Themen zu Compilerfehlern erstellt, die nicht vom Compiler ausgegeben werden und Sie jetzt stattdessen zu dieser Seite umleiten.
In Microsoft Learn Q&A-Foren finden Sie möglicherweise zusätzliche Unterstützung für Fehler und Warnungen. Oder suchen Sie auf der Website der Visual Studio C++-Developer Community nach der Fehler- oder Warnungsnummer. Sie können auch Stack Overflow nach Lösungen durchsuchen.
Links zu zusätzlichen Hilfe- und Communityressourcen finden Sie in der Hilfe und Community für Visual C++.
Warnmeldungen
Warnung | `Message` |
---|---|
Compilerwarnung (Stufe 4, nicht mehr ausgegeben) C4001 | Dem Standard nicht entsprechende Erweiterung „einzeiliger Kommentar“ wurde verwendet. |
Compilerwarnung (Stufe 1, Fehler) C4002 | Zu viele Argumente für den Aufruf des funktionsähnlichen Makros „identifier“. |
Compilerwarnung (Stufe 1, Fehler) C4003 | Nicht genügend Argumente für den Aufruf des funktionsähnlichen Makros „Bezeichner“. |
Compilerwarnung (Stufe 1) C4005 | „identifier“: Makro-Neudefinition |
Compilerwarnung (Stufe 1) C4006 | #undef hat einen Bezeichner erwartet. |
Compilerwarnung (Stufe 3) C4007 | „Funktion“: muss „Attribut“ sein |
Compilerwarnung (Stufe 3) C4008 | „function“: Attribut „attribute“ wird ignoriert. |
Compilerwarnung (Stufe 1) C4010 | Einzeiliger Kommentar enthält Zeilenfortsetzungszeichen. |
Compilerwarnung (Stufe 3) C4013 | „function“ undefiniert; Annahme: extern mit Rückgabetyp int |
Compilerwarnung (Stufe 1) C4015 | „identifier“: Typ des Bitfelds muss ganzzahlig sein. |
Compilerwarnung (Stufe 3) C4018 | „expression“: Konflikt zwischen „signed“ und „unsigned“ |
Compilerwarnung (Stufe 4) C4019 | Leere Anweisung im globalen Gültigkeitsbereich |
Compilerwarnung (Stufe 1) C4020 | „function“: zu viele übergebene Parameter |
Compilerwarnung (Stufe 1) C4022 | „function“: Fehlende Zeigerübereinstimmung für tatsächlichen Parameter „parameter_number“ |
Compilerwarnung (Stufe 1) C4023 | „function“: Basierter Zeiger auf ein separates Segment an Funktion ohne Prototyp übergeben: Parameter „parameter_number“ |
Compilerwarnung (Stufe 1) C4024 | „function“ : Unterschiedliche Typen für formalen und tatsächlichen Parameter „parameter_number“ |
Compilerwarnung (Stufe 1) C4025 | „function“: Basierter Zeiger an Funktion mit Variablenargumenten übergeben: Parameter „parameter_number“ |
Compilerwarnung (Stufe 1) C4026 | Funktion mit Liste formaler Parameter deklariert |
Compilerwarnung (Stufe 1) C4027 | Funktion ohne Liste formaler Parameter deklariert |
Compilerwarnung (Stufe 1) C4028 | Formaler Parameter parameter_number unterscheidet sich von der Deklaration. |
Compilerwarnung (Stufe 1) C4029 | Deklarierte Liste formaler Parameter weicht von der Definition ab. |
Compilerwarnung (Stufe 1) C4030 | Die erste Liste formaler Parameter ist länger als die zweite Liste |
Compilerwarnung (Stufe 1) C4031 | Die zweite Liste formaler Parameter ist länger als die erste Liste. |
Compilerwarnung (Stufe 4) C4032 | Der formale Parameter parameter_number hat nach der Höherstufung einen anderen Typ. |
Compilerwarnung (Stufe 1) C4033 | „function“ muss einen Wert zurückgeben. |
Compilerwarnung (Stufe 1) C4034 | „sizeof“ gibt 0 zurück. |
Compilerwarnung (Stufe 3) C4035 | „function“: Kein Rückgabewert |
Compilerwarnung (Stufe 1) C4036 | Unbenannter Typ 'Typ' als übergebener Parameter |
Compilerwarnung (Stufe 1) C4038 | „modifier“: Unzulässiger Klassenmodifizierer |
Compilerwarnung (Stufe 1) C4041 | Compilerlimit: Browserausgabe wird abgebrochen. |
Compilerwarnung (Stufe 1) C4042 | „identifier“: Besitzt unzulässige Speicherklasse |
Compilerwarnung (Stufe 1) C4045 | „array“: Arraygrenze überschritten |
Compilerwarnung (Stufe 1) C4047 | „operator“: „identifier1“ unterscheidet sich in Ebenen der Dereferenzierung von „identifier2“. |
Compilerwarnung (Stufe 1) C4048 | Verschiedene Arraysubscripts: „identifier1“ und „identifier2“ |
Compilerwarnung (Stufe 1) C4049 | Compilerlimit: Ausgabe der Zeilennummer wird abgebrochen. |
Compilerwarnung (Stufe 1) C4051 | Typkonvertierung; möglicher Datenverlust |
Compilerwarnung (Stufe 1 und Stufe 4) C4052 | Unterschiedliche Funktionsdeklarationen; eine enthält variable Argumente |
Compilerwarnung (Stufe 4) C4053 | Ein void-Operand für „?: “ |
Compilerwarnung (Ebene 1) C4055 | „conversion“: Von Datenzeiger „type1“ zu Funktionszeiger „type2“ |
Compilerwarnung (Stufe 2) C4056 | Überlauf bei Gleitkommakonstanten-Arithmetik |
Compilerwarnung (Stufe 4) C4057 | „operator“: „identifier1“ unterschiedet sich bei der Dereferenzierung von leicht unterschiedlichen Basistypen von „identifier2“. |
Compilerwarnung (Stufe 3, deaktiviert) C4060 | switch-Anweisung enthält weder „case“- noch „default“-Bezeichnungen. |
Compilerwarnung (Stufe 4, deaktiviert) C4061 | Enumerator „Bezeichner“ in einem Schalter von enum „Enumeration“ wird nicht explizit von einer case -Bezeichnung gehandhabt |
Compilerwarnung (Stufe 4, deaktiviert) C4062 | Enumerator „Bezeichner“ in Schalter von enum „Enumeration“ wird nicht verarbeitet |
Compilerwarnung (Stufe 4) C4063 | Fall „identifier“ ist kein gültiger Wert für den Schalter von enum „enumeration“. |
Compilerwarnung (Stufe 4) C4064 | Switch mit unvollständiger enum „enumeration“ |
Compilerwarnung (Stufe 3, deaktiviert) C4065 | Switch-Anweisung enthält „default “ aber keine „case “-Beschriftungen. |
Compilerwarnung (Stufe 3) C4066 | Mit Ausnahme des ersten Zeichens werden die Zeichen in einer "breiten" Zeichenkonstante ignoriert |
Compilerwarnung (Stufe 1) C4067 | Unerwartete Token nach Präprozessordirektive – Zeilenvorschub erwartet. |
Compilerwarnung (Stufe 1) C4068 | Unbekanntes Pragma „identifier“ |
Compilerwarnung C4069 | Der Typ „long double“ besitzt dieselbe Genauigkeit wie „double“. |
Compilerwarnung (Stufe 3) C4073 | Initialisierungen im Initialisierungsbereich einer Bibliothek platziert. |
Compilerwarnung (Stufe 1) C4074 | Initialisierungen im für den Compiler reservierten Initialisierungsbereich platziert. |
Compilerwarnung (Stufe 1) C4075 | Initialisierungen stehen in nicht erkanntem Initialisierungsbereich |
Compilerwarnung (Stufe 1) C4076 | „type_modifier“: Kann nicht mit Typ „typename“ verwendet werden |
Compilerwarnung (Stufe 1) C4077 | Unbekannte check_stack-Option |
Compilerwarnung (Stufe 1) C4079 | Unerwartetes Token „token“ |
Compilerwarnung (Stufe 1) C4080 | Bezeichner für Segmentnamen erwartet; „symbol“ gefunden |
Compilerwarnung (Stufe 1) C4081 | „token1“ erwartet, „token2“ gefunden |
Compilerwarnung (Stufe 1) C4083 | „token“ erwartet, Bezeichner „identifier“ gefunden |
Compilerwarnung (Stufe 1) C4085 | Pragma-Parameter „on “ oder „off “ erwartet |
Compilerwarnung (Stufe 1) C4086 | Pragma-Parameter "1", "2", "4", "8" oder "16" erwartet |
Compilerwarnung (Stufe 1) C4087 | „function“: Mit „void “-Parameterliste deklariert |
Compilerwarnung (Stufe 1) C4088 | „function“: Zeigerkonflikt im tatsächlichen Parameter „parameter_number“, formaler Parameter „parameter_number“ |
Compilerwarnung (Stufe 1) C4089 | „function“: Unterschiedliche Typen im tatsächlichen Parameter „parameter_number“, formaler Parameter „parameter_number“ |
Compilerwarnung (Stufe 1) C4090 | „operation“: Verschiedene „modifier“-Qualifizierer |
Compilerwarnung (Stufe 1 und Stufe 2) C4091 | „Schlüsselwort“: wird auf der linken Seite von „Typ“ ignoriert, wenn keine Variable deklariert wurde |
Compilerwarnung (Stufe 4) C4092 | „sizeof“ gibt „unsigned long“ zurück. |
Compilerwarnung (Stufe 2) C4094 | „token“ ohne Tag deklariert keine Symbole. |
Compilerwarnung (Stufe 1) C4096 | „identifier“: Die Schnittstelle ist keine COM-Schnittstelle; wird nicht zu IDL ausgegeben. |
Compilerwarnung (Stufe 1) C4097 | Pragma-Parameter „restore “ oder „off “ erwartet |
Compilerwarnung (Stufe 1) C4098 | „function“: „void “-Funktion gibt einen Wert zurück. |
Compilerwarnung (Stufe 2) C4099 | „identifier“: Typname zuerst mit „object_type1“ erkannt, jetzt mit „object_type2“ erkannt. |
Compilerwarnung (Stufe 4) C4100 | „identifier“: Nicht referenzierter formaler Parameter |
Compilerwarnung (Stufe 3 und Stufe 4) C4101 | „Bezeichner“: unreferenzierte lokale Variable |
Compilerwarnung (Stufe 3) C4102 | „label“: Unreferenzierte Bezeichnung |
Compilerwarnung (Stufe 1) C4103 | Die Ausrichtung wurde nach dem Einschließen des Headers geändert, möglicherweise fehlt #pragma pack(pop) . |
Compilerwarnung (Stufe 1) C4109 | Unerwarteter Bezeichner „identifier“ |
Compilerwarnung (Stufe 1 und Stufe 4) C4112 | #line erfordert eine Ganzzahl zwischen 1 und „Zeilenanzahl“ |
Compilerwarnung (Stufe 1) C4113 | „identifier1“ unterscheidet sich in Parameterlisten von „identifier2“. |
Compilerwarnung (Stufe 1) C4114 | Der gleiche Typqualifizierer wurde mehrmals verwendet |
Compilerwarnung (Stufe 1 und Stufe 4) C4115 | „type“: Benannte Typdefinition in runden Klammern |
Compilerwarnung (Stufe 1) C4116 | Unbenannte Typdefinition in runden Klammern |
Compilerwarnung (Stufe 1) C4117 | Makroname „name“ ist reserviert. „command“ wird ignoriert. |
Compilerwarnung (Stufe 1) C4119 | Unterschiedliche Basiselemente angegeben, „base1“ und „base2“ |
Compilerwarnung (Stufe 1) C4120 | Konflikt zwischen normalem und segmentbasiertem Zeiger |
Compilerwarnung (Stufe 4) C4121 | „symbol“: Ausrichtung eines Elements hängt vom Packing ab. |
Compilerwarnung (Stufe 1) C4122 | „function“: „alloc_text“ ist nur für Funktionen mit C-Bindung anwendbar. |
Compilerwarnung (Stufe 1) C4123 | Unterschiedliche Basisausdrücke angegeben |
Compilerwarnung (Stufe 1) C4124 | „__fastcall“ mit Stapelüberprüfung ist ineffizient. |
Compilerwarnung (Stufe 4) C4125 | Dezimale Ziffer beendet oktale Escapesequenz |
Compilerwarnung (Stufe 4) C4127 | Bedingter Ausdruck ist konstant |
Compilerwarnung (Stufe 1) C4129 | „character“: Nicht erkannte Zeichenescapesequenz |
Compilerwarnung (Stufe 4) C4130 | „operator“: Logische Operation mit Adresse einer Zeichenfolgenkonstanten |
Compilerwarnung (Stufe 4) C4131 | „function“: Verwendet Deklarator für altes Format. |
Compilerwarnung (Stufe 4) C4132 | „object“: const -Objekt sollte initialisiert werden. |
Compilerwarnung (Stufe 1 und Stufe 3) C4133 | „Ausdruck“: inkompatible Typen – von „Typ1“ zu „Typ2“ |
Compilerwarnung C4137 | „function“: Kein Rückgabewert von Gleitkommafunktion |
Compilerwarnung (Stufe 1) C4138 | „*/ “ wurde außerhalb des Kommentars gefunden. |
Compilerwarnung (Stufe 1, Fehler) C4141 | "Modifizierer": mehrmals verwendet |
Compilerwarnung (Stufe 1) C4142 | „identifier“: Neudefinition eines Typs ohne Auswirkungen |
Compilerwarnung (Stufe 1) C4143 | pragma „same_seg“ wird nicht unterstützt, verwenden Sie die Zuteilung mit __based . |
Compilerwarnung (Stufe 1) C4144 | „expression“: Relationaler Ausdruck als Schalterausdruck |
Compilerwarnung (Stufe 1) C4145 | „expression1“: Relationaler Ausdruck als Schalterausdruck; mögliche Verwechslung mit „expression2“ |
Compilerwarnung (Stufe 2) C4146 | Einem vorzeichenlosen Typ wurde ein unärer Minus-Operator zugewiesen. Das Ergebnis ist weiterhin vorzeichenlos. |
Compilerwarnung (Stufe 2) C4150 | Löschen eines Zeigers auf den unvollständigen Typ „type“. Kein Destruktor aufgerufen. |
Compilerwarnung (Stufe 4) C4152 | Nicht dem Standard entsprechende Erweiterung, Konvertierung von Funktions-/Datenzeiger im Ausdruck |
Compilerwarnung (Stufe 1) C4153 | Funktions-/Datenzeigerkonvertierung im Ausdruck |
Compilerwarnung (Stufe 1) C4154 | Löschen eines Arrayausdrucks; Konvertierung in Zeiger angegeben |
Compilerwarnung (Stufe 1) C4155 | Löschen eines Arrayausdrucks ohne Verwendung der Arrayform von "delete" |
Compilerwarnung (Stufe 2) C4156 | Löschen eines Arrayausdrucks ohne Verwendung der Arrayform „delete“. Arrayform ersetzt. |
Compilerwarnung (Stufe 1) C4157 | Pragma wurde vom C-Compiler ignoriert. |
Compilerwarnung (Stufe 1) C4158 | #pragma pointers_to_members(full_generality, „inheritance_type“) wird angenommen. |
Compilerwarnung (Stufe 3) C4159 | #pragma „pragma“(pop,...) : Hat den zuvor gepushten Bezeichner „identifier“ per Pop entfernt. |
Compilerwarnung (Stufe 1) C4160 | #pragma „pragma“(pop,...) : Konnte den zuvor gepushten Bezeichner „identifier“ nicht finden. |
Compilerwarnung (Stufe 3) C4161 | #pragma „pragma“(pop...) : Mehr Pops als Pushes |
Compilerwarnung (Stufe 1) C4162 | „identifier“: Keine Funktion mit C-Bindung gefunden |
Compilerwarnung (Stufe 1) C4163 | „identifier“: Nicht als intrinsische Funktion verfügbar |
Compilerwarnung (Stufe 1) C4164 | „funktion“: Intrinsische Funktion nicht deklariert |
Compilerwarnung (Stufe 3, deaktiviert) C4165 | „HRESULT “ wird zu „bool “ konvertiert. Möchten Sie diese Änderung wirklich vornehmen? |
Compilerwarnung (Stufe 1) C4166 | Unzulässige Aufrufkonvention für Konstruktor/Destruktor |
Compilerwarnung (Stufe 1) C4167 | „function“: Nur als intrinsische Funktion verfügbar |
Compilerwarnung (Stufe 1) C4168 | Compilerlimit: Nicht genügend Debuggertypen; Programmdatenbank „database“ muss gelöscht und neu erstellt werden. |
Compilerwarnung (Stufe 1) C4172 | Gibt die Adresse einer lokalen Variablen oder temporären optional_context zurück. |
Compilerwarnung (Stufe 1) C4174 | „name“: Nicht als #pragma component verfügbar |
Compilerwarnung (Stufe 1) C4175 | #pragma component(browser, on) : Browserinformation muss zu Beginn in der Befehlszeile angegeben werden. |
Compilerwarnung (Stufe 1) C4176 | „subcomponent“: Unbekannte Unterkomponente für #pragma component -Browser |
Compilerwarnung (Stufe 1) C4177 | #pragma „pragma“ sollte nur im globalen Gültigkeitsbereich oder im Namespace-Gültigkeitsbereich verwendet werden. |
Compilerwarnung (Stufe 1) C4178 | case -Konstante „constant“ ist zu groß für den Typ des Schalterausdrucks. |
Compilerwarnung (Stufe 4, nicht mehr ausgegeben) C4179 | „//* “: Als „/ “ und „/\* “ geparst: Verwechslung mit „// “-Standardkommentaren |
Compilerwarnung (Stufe 1) C4180 | Auf Funktionstyp angewendeter Qualifizierer ist ohne Bedeutung; wird ignoriert |
Compilerwarnung C4181 | Qualifizierer auf Verweistyp angewendet; wird ignoriert |
Compilerwarnung (Stufe 1) C4182 | Die #include -Schachtelungsebene ist „nest_count“ tief; Endlosrekursion möglich |
Compilerwarnung (Stufe 1) C4183 | „identifier“: Rückgabetyp fehlt; Memberfunktion, die „int “ zurückgibt, wird angenommen. |
Compilerwarnung (Stufe 1) C4185 | Das unbekannte #import -Attribut „attribute“ wird ignoriert. |
Compilerwarnung (Stufe 1) C4186 | # import-Attribut „attribute“ erfordert „argument_count“ Argumente; ignoriert |
Compilerwarnung (Stufe 1) C4187 | #import -Attribute „attribute1“ und „attribute2“ sind inkompatibel. Beide werden ignoriert. |
Compilerwarnung (Stufe 1) C4188 | Konstanter Ausdruck ist keine Ganzzahl |
Compilerwarnung (Stufe 3 und Stufe 4) C4189 | „identifier“: Lokale Variable ist initialisiert, aber nicht referenziert. |
Compilerwarnung (Stufe 1) C4190 | Für „identifier1“ wurde C-Bindung angegeben, es wird aber UDT „identifier2“ zurückgegeben, was mit C inkompatibel ist. |
Compilerwarnung (Stufe 3, deaktiviert) C4191 | „Vorgang“: unsichere Konvertierung von „Typ des Ausdrucks“ in „erforderlicher Typ“ Ein Funktionsaufruf mithilfe des resultierenden Zeigers kann zu einem Programmfehler führen. |
Compilerwarnung (Stufe 3) C4192 | Automatischer Ausschluss von „identifier“ während des Importierens der Typbibliothek „library“ |
Compilerwarnung (Stufe 3) C4193 | #pragma warning(pop) : keine übereinstimmende „#pragma warning(push) “ |
Compilerwarnung (Stufe 1) C4194 | #pragma start_map_region kann nicht geschachtelt werden, wird ignoriert. |
Compilerwarnung (Stufe 1) C4195 | #pragma stop_map_region ohne übereinstimmende #pragma start_map_region verwendet; wird ignoriert. |
Compilerwarnung (Stufe 1) C4196 | „token1“' oder „token2“ erwartet, „token3“ gefunden |
Compilerwarnung (Stufe 3) C4197 | „type“: volatile auf der höchsten Ebene bei Umwandlung wird ignoriert. |
Compilerwarnung (Stufe 1, Stufe 2, Stufe 3 und Stufe 4) C4199 | message |
Weitere Informationen
C/C++-Compiler und -Buildtools: Fehler und Warnungen
Compilerwarnungen C4000 bis C5999