Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 viele Arten von Fehlern und Warnungen melden. 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. Ein Fix kann mehrere nachfolgende Fehler beheben.
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 auf dieser Seite landen und denken, dass die Fehlermeldung oder Warnmeldung zusätzliche Erläuterungen benötigt, teilen Sie uns diese über die Feedbackschaltflächen auf dieser Seite mit. 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 > Problem meldenaus oder senden Sie einen Vorschlag mithilfe von Hilfe > Feedback senden > Feature vorschlagen. Es wurden einige Themen zu Compilerfehlern erstellt, die nicht vom Compiler ausgegeben werden und Sie jetzt stattdessen zu dieser Seite umleiten.
Weitere Unterstützung bei Fehlern und Warnungen finden Sie in den Microsoft Q&A C++-Foren. 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 | Nachricht |
|---|---|
| Compilerwarnung (Stufe 4, nicht mehr ausgegeben) C4001 | Dem Standard nicht entsprechende Erweiterung „einzeiliger Kommentar“ wurde verwendet. |
| Compilerwarnung (Ebene 1, Fehler) C4002- | Zu viele Argumente für den Aufruf des funktionsähnlichen Makros „identifier“. |
| Compilerwarnung (Ebene 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; es wird angenommen, dass es extern ist und einen int-Wert zurückgibt. |
| 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 | 'Funktion': basierter Zeiger wurde zu unprototypierter Funktion übergeben: Parameter Parameternummer |
| Compilerwarnung (Stufe 1) C4024 | 'Funktion': verschiedene Typen für formale und tatsächliche 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 | Compiler-Limit: Browserausgabe wird beendet. |
| Compilerwarnung (Stufe 1) C4042 | „identifier“: Besitzt unzulässige Speicherklasse |
| Compilerwarnung (Stufe 1) C4045 | „array“: Arraygrenzenüberlauf |
| Compilerwarnung (Stufe 1) C4047 | „operator“: „identifier1“ unterscheidet sich in der Dereferenzierungsebene 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“ unterscheidet sich in der Indirektion zu 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 dem Typ 'Typname' 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 | Der erwartete Pragma-Parameter sollte „on“ oder „off“ sein. |
| Compilerwarnung (Stufe 1) C4086 | Es wird erwartet, dass das Pragma-Parameter '1', '2', '4', '8' oder '16' ist. |
| 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 | Der erwartete Pragma-Parameter sollte „restore“ oder „off“ sein. |
| 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 | 'Bezeichner': nicht referenziertes 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 line_count (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 einen Deklarator im alten Stil. |
| 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 (Ebene 1, Fehler) C4141 | "Modifizierer": mehrmals verwendet |
| Compilerwarnung (Stufe 1) C4142 | „identifier“: Neudefinition eines Typs ohne Folgen |
| 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 | Rückgabeadresse einer lokalen oder temporären Variablen: optional_context |
| 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; es wird angenommen, dass es sich um eine Memberfunktion handelt, die „int“ zurückgibt. |
| Compilerwarnung (Stufe 1) C4185 | Das unbekannte #import-Attribut „attribute“ wird ignoriert |
| Compilerwarnung (Stufe 1) C4186 | #import-Attribut „attribute“ erfordert argument_count-Argumente; wird 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 | 'Identifier1' hat eine C-Verknüpfung angegeben, gibt jedoch 'Identifier2' zurück, die mit C nicht kompatibel 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 passende „#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 | nachricht |
Siehe auch
C/C++-Compiler und -Buildtools: Fehler und Warnungen
Compilerwarnungen C4000 bis C5999