Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Artiklarna i det här avsnittet beskriver Microsoft C/C++-kompilatorns varningsmeddelanden C4000 till och med C4199.
Viktigt!
Visual Studio-kompilatorer och byggverktyg kan rapportera många typer av fel och varningar. När ett fel eller en varning har hittats kan byggverktygen göra antaganden om kod avsikt och försöka fortsätta, så att fler problem kan rapporteras samtidigt. Om verktygen gör fel antagande kan det hända att senare fel eller varningar inte gäller för projektet. När du korrigerar problem i projektet börjar du alltid med det första felet eller varningen som rapporteras och återskapar ofta. En korrigering kan lösa flera efterföljande fel.
Om du vill få hjälp med ett visst diagnostikmeddelande i Visual Studio väljer du det i fönstret Utdata och trycker på F1-tangenten. Visual Studio öppnar dokumentationssidan för det felet, om det finns ett sådant. Du kan också använda sökverktyget överst på sidan för att hitta artiklar om specifika fel eller varningar. Eller bläddra i listan med fel och varningar efter verktyg och skriv in innehållsförteckningen på den här sidan.
Anmärkning
Alla Visual Studio-fel eller -varningar dokumenteras inte. I många fall innehåller diagnostikmeddelandet all tillgänglig information. Om du landade på den här sidan och tror att felet eller varningsmeddelandet behöver ytterligare förklaring kan du meddela oss med hjälp av feedbackknapparna på den här sidan. Om du tror att felet eller varningen är fel, eller om du har hittat ett annat problem med verktygsuppsättningen, rapporterar du ett produktproblem på webbplatsen Developer Community. Du kan också skicka feedback och ange buggar i IDE:t. I Visual Studio går du till menyraden och väljer Hjälp > Skicka feedback > Rapportera ett problemeller skicka ett förslag med hjälp av Hjälp > Skicka feedback > Föreslå en funktion. Vissa kompilatorfelavsnitt skapades men genereras inte längre av kompilatorn och omdirigeras nu till den här sidan i stället.
Du kan få ytterligare hjälp med fel och varningar i Microsoft Q&A C++-forum. Du kan också söka efter fel- eller varningsnumret på webbplatsen för Visual Studio C++ Developer Community. Du kan också söka Stack Overflow för att hitta lösningar.
Länkar till ytterligare hjälp- och communityresurser finns i Visual C++ Help and Community.
Varningsmeddelanden
Varning | Meddelande |
---|---|
Kompilatorvarning (nivå 4, inte längre genererad) C4001 | icke-standardtillägget "single line comment" användes |
Kompilatorvarning (nivå 1, fel) C4002 | för många argument för funktionsliknande makroanropidentifierare |
Kompilatorvarning (nivå 1, fel) C4003 | finns inte tillräckligt många argument för funktionsliknande makroanrop 'identifierare' |
Kompilatorvarning (nivå 1) C4005 | "identifierare": omdefiniering av makro |
Kompilatorvarning (nivå 1) C4006 |
#undef förväntade sig en identifierare |
Kompilatorvarning (nivå 3) C4007 | "funktion": måste vara "attribut" |
Kompilatorvarning (nivå 3) C4008 | funktion'attribut' attribut ignoreras |
Kompilatorvarning (nivå 1) C4010 | enradskommentar innehåller radfortsättningstecken |
Kompilatorvarning (nivå 3) C4013 | "funktion" är odefinierad; antar att det är en extern funktion som returnerar en int |
Kompilatorvarning (nivå 1) C4015 | "identifierare": typ av bitfält måste vara integrerad |
Kompilatorvarning (nivå 3) C4018 | "uttryck": signerad/osignerad missmatchning |
Kompilatorvarning (nivå 4) C4019 | tom instruktion i globalt omfång |
Kompilatorvarning (nivå 1) C4020 | "function": för många faktiska parametrar |
Kompilatorvarning (nivå 1) C4022 | funktion: pekarmatchningsfel för faktisk parameter parameter_number |
Kompilatorvarning (nivå 1) C4023 | "funktion": baserad pekare skickad till oprototypad funktion: parameter parameternummer |
Kompilatorvarning (nivå 1) C4024 | "funktion": olika typer av formella och faktiska parametrar parameter_number |
Kompilatorvarning (nivå 1) C4025 | "funktion": baserad pekare som skickas till funktionen med variabelargument: parameter parameter_number |
Kompilatorvarning (nivå 1) C4026 | funktion deklarerad med formell parameterlista |
Kompilatorvarning (nivå 1) C4027 | funktion deklarerad utan formell parameterlista |
Kompilatorvarning (nivå 1) C4028 | formell parameter parameternummer skiljer sig från deklarationen |
Kompilatorvarning (nivå 1) C4029 | deklarerad formell parameterlista som skiljer sig från definitionen |
Kompilatorvarning (nivå 1) C4030 | första formella parameterlistan längre än den andra listan |
Kompilatorvarning (nivå 1) C4031 | den andra formella parameterlistan längre än den första listan |
Kompilatorvarning (nivå 4) C4032 | formell parameter parameter_number har en annan typ när den höjs upp |
Kompilatorvarning (nivå 1) C4033 | funktionenmåste returnera ett värde |
Kompilatorvarning (nivå 1) C4034 | sizeof returnerar 0 |
Kompilatorvarning (nivå 3) C4035 | "funktion": inget returvärde |
Kompilatorvarning (nivå 1) C4036 | namnlös "typ" som faktisk parameter |
Kompilatorvarning (nivå 1) C4038 | "modifierare": illegal klassmodifierare |
Kompilatorvarning (nivå 1) C4041 | kompilatorgräns: avsluta webbläsarutdata |
Kompilatorvarning (nivå 1) C4042 | "identifierare": har en felaktig lagringsklass |
Kompilatorvarning (nivå 1) C4045 | "array": överträdelse av arraygränser |
Kompilatorvarning (nivå 1) C4047 | "operator"identifier1" skiljer sig i indirekta nivåer från "identifier2" |
Kompilatorvarning (nivå 1) C4048 | olika index för arrayer: 'identifier1' och 'identifier2' |
Kompilatorvarning (nivå 1) C4049 | kompilatorgräns: avslutar rapportering av radnummer |
Kompilatorvarning (nivå 1) C4051 | typkonvertering; eventuell dataförlust |
Kompilatorvarning (nivå 1 och nivå 4) C4052 | funktionsdeklarationer skiljer sig; en innehåller variabelargument |
Kompilatorvarning (nivå 4) C4053 | en tom operand för "?: " |
Kompilatorvarning (nivå 1) C4055 | "konvertering" : från datapekaren "type1" till funktionspekaren "type2" |
Kompilatorvarning (nivå 2) C4056 | overflow i aritmetik med flyttalskonstanter |
Kompilatorvarning (nivå 4) C4057 | "operator": "identifier1" skiljer sig i indirektion till något olika grundtyper från "identifier2" |
Kompilatorvarning (nivå 3, av) C4060 | switch-instruktionen innehåller inga "case-etiketter" eller "default-etiketter" |
Kompilatorvarning (nivå 4, av) C4061 | enumeratoridentifierarei växeln enum uppräkninghanteras inte uttryckligen av en case etikett |
Kompilatorvarning (nivå 4, av) C4062 |
identifierarei växeln enum uppräkninghanteras inte |
Kompilatorvarning (nivå 4) C4063 | case "identifier" är inte ett giltigt värde för byte av enum uppräkning" |
Kompilatorvarning (nivå 4) C4064 | byte av ofullständig enum uppräkning |
Kompilatorvarning (nivå 3, av) C4065 | switch-instruktionen innehåller etikettendefault men intecase |
Kompilatorvarning (nivå 3) C4066 | tecken bortom det första i bred-tecken-konstant ignoreras |
Kompilatorvarning (nivå 1) C4067 | oväntade tecken efter förprocessordirektivet – ny rad förväntades |
Kompilatorvarning (nivå 1) C4068 | okänd pragmaidentifierare |
Kompilatorvarning C4069 | long double har samma precision som double |
Kompilatorvarning (nivå 3) C4073 | initierare som placeras i initieringsområdet för biblioteket |
Kompilatorvarning (nivå 1) C4074 | Initierare som placeras i den reserverade initieringsområden för kompilatorn |
Kompilatorvarning (nivå 1) C4075 | initierare läggs i okänt initieringsområde |
Kompilatorvarning (nivå 1) C4076 | "type_modifier": kan inte användas med typen "typename" |
Kompilatorvarning (nivå 1) C4077 | okänt check_stack alternativ |
Kompilatorvarning (nivå 1) C4079 | oväntad symbolsymbol |
Kompilatorvarning (nivå 1) C4080 | förväntad identifierare för segmentnamn. hittade symbolen |
Kompilatorvarning (nivå 1) C4081 | förväntad "token1"; hittadetoken2 |
Kompilatorvarning (nivå 1) C4083 | förväntade "token"; hittade identifierarenidentifierare |
Kompilatorvarning (nivå 1) C4085 | förväntade pragmaparametern varaon elleroff |
Kompilatorvarning (nivå 1) C4086 | förväntade pragmaparametern vara "1", "2", "4", "8" eller "16" |
Kompilatorvarning (nivå 1) C4087 | funktion: deklareras med parameterlistanvoid |
Kompilatorvarning (nivå 1) C4088 | "funktion" : matchningsfel för pekaren i den faktiska parametern parameter_number, formell parameter parameter_number |
Kompilatorvarning (nivå 1) C4089 | "funktion": olika typer för faktisk parameter parameter_number, formell parameter parameter_number |
Kompilatorvarning (nivå 1) C4090 | "operation": olika "modifierare" kvalifikationer |
Kompilatorvarning (nivå 1 och nivå 2) C4091 | nyckelordignoreras till vänster omtypnär ingen variabel deklareras |
Kompilatorvarning (nivå 4) C4092 | sizeof returnerar "osignerad lång" |
Kompilatorvarning (nivå 2) C4094 | otaggad 'token' har inte deklarerat några symboler |
Kompilatorvarning (nivå 1) C4096 | "identifierare": gränssnittet är inte ett COM-gränssnitt; skickas inte till IDL |
Kompilatorvarning (nivå 1) C4097 | förväntade pragmaparametern vararestore elleroff |
Kompilatorvarning (nivå 1) C4098 | funktionenfunktionenvoid returnerar ett värde |
Kompilatorvarning (nivå 2) C4099 | "identifier": typnamn först sett med "object_type1" nu sett med "object_type2" |
Kompilatorvarning (nivå 4) C4100 | "identifierare": orefererad parameter |
Kompilatorvarning (nivå 3 och nivå 4) C4101 | "identifierare": orefererad lokal variabel |
Kompilatorvarning (nivå 3) C4102 | "etikett": orefererad etikett |
Kompilatorvarning (nivå 1) C4103 | Efter att ha inkluderat rubriken ändrades justeringen, vilket kan bero på att #pragma pack(pop) saknas. |
Kompilatorvarning (nivå 1) C4109 | oväntad identifierare 'identifierare' |
Kompilatorvarning (nivå 1 och nivå 4) C4112 |
#line kräver ett heltal mellan 1 och line_count |
Kompilatorvarning (nivå 1) C4113 | "identifier1" skiljer sig i parameterlistor från "identifier2" |
Kompilatorvarning (nivå 1) C4114 | samma typ av kvalificerare som används mer än en gång |
Kompilatorvarning (nivå 1 och nivå 4) C4115 | "typ": namngiven typdefinition inom parenteser |
Kompilatorvarning (nivå 1) C4116 | namnlös typdefinition inom parenteser |
Kompilatorvarning (nivå 1) C4117 | makronamnetnamnär reserverat,kommandoignoreras |
Kompilatorvarning (nivå 1) C4119 | olika baser "base1" och "base2" angivna |
Kompilatorvarning (nivå 1) C4120 | baserat/ogrundat matchningsfel |
Kompilatorvarning (nivå 4) C4121 | "symbol": en medlems justering var känslig för förpackning |
Kompilatorvarning (nivå 1) C4122 | "funktion": alloc_text gäller endast funktioner med C-länkning |
Kompilatorvarning (nivå 1) C4123 | olika basuttryck har angetts |
Kompilatorvarning (nivå 1) C4124 | __fastcall med stackkontroll är ineffektivt |
Kompilatorvarning (nivå 4) C4125 | decimaltal avslutar oktal escape-sekvens |
Kompilatorvarning (nivå 4) C4127 | villkorsuttryck är konstant |
Kompilatorvarning (nivå 1) C4129 | "tecken": okänd teckenrymningssekvens |
Kompilatorvarning (nivå 4) C4130 | "operator": logisk operation på adressen till strängkonstanten |
Kompilatorvarning (nivå 4) C4131 | "funktion": använder deklarator i gammal stil |
Kompilatorvarning (nivå 4) C4132 |
objekt: const objekt bör initieras |
Kompilatorvarning (nivå 1 och nivå 3) C4133 | "uttryck": inkompatibla typer – från "type1" till "type2" |
Kompilatorvarning C4137 | "function": inget returvärde från flyttalsfunktionen |
Kompilatorvarning (nivå 1) C4138 | "*/ " hittades utanför kommentaren |
Kompilatorvarning (nivå 1, fel) C4141 | "modifierare": används mer än en gång |
Kompilatorvarning (nivå 1) C4142 | "identifierare": godartad omdefiniering av typ |
Kompilatorvarning (nivå 1) C4143 |
pragma "same_seg" stöds inte; använd __based -allokering |
Kompilatorvarning (nivå 1) C4144 | uttryck: relationalt uttryck som switch-uttryck |
Kompilatorvarning (nivå 1) C4145 | "expression1": relationsuttryck som växeluttryck; eventuell förvirring med "expression2" |
Kompilatorvarning (nivå 2) C4146 | Enär minusoperator tillämpas på en osignerad typ, förblir resultatet osignerat |
Kompilatorvarning (nivå 2) C4150 | borttagning av pekaren till ofullständig typtyp; ingen destructor anropad |
Kompilatorvarning (nivå 4) C4152 | icke-standardtillägg, funktions-/datapekarkonvertering i uttryck |
Kompilatorvarning (nivå 1) C4153 | funktions-/datapekarkonvertering i uttryck |
Kompilatorvarning (nivå 1) C4154 | borttagning av ett matrisuttryck. konvertering till angiven pekare |
Kompilatorvarning (nivå 1) C4155 | borttagning av ett matrisuttryck utan att använda matrisformen "ta bort" |
Kompilatorvarning (nivå 2) C4156 | borttagning av ett matrisuttryck utan att använda matrisformen "ta bort". matrisformulär ersatt |
Kompilatorvarning (nivå 1) C4157 | pragma ignorerades av C-kompilatorn |
Kompilatorvarning (nivå 1) C4158 | anta #pragma pointers_to_members(full_generality, arvtyp) |
Kompilatorvarning (nivå 3) C4159 |
#pragma
pragma(pop,...) : har poppat tidigare push-identifierareidentifierare" |
Kompilatorvarning (nivå 1) C4160 |
#pragma
pragma(pop,...) : hittade inte tidigare push-identifierareidentifierare |
Kompilatorvarning (nivå 3) C4161 |
#pragma
pragma(pop...) : fler pops än pushar |
Kompilatorvarning (nivå 1) C4162 | "identifierare": ingen funktion med C-länkning hittades |
Kompilatorvarning (nivå 1) C4163 | "identifierare": inte tillgänglig som en inbyggd funktion |
Kompilatorvarning (nivå 1) C4164 | "funktion": inbyggd funktion har inte deklarerats |
Kompilatorvarning (nivå 3, av) C4165 | "HRESULT " konverteras till "bool "; är du säker på att det här är vad du vill? |
Kompilatorvarning (nivå 1) C4166 | olaglig anropskonvention för konstruktor/destruktor |
Kompilatorvarning (nivå 1) C4167 | "funktion": endast tillgänglig som en inbyggd funktion |
Kompilatorvarning (nivå 1) C4168 | kompilatorgräns: av felsökartyper tar du bort programdatabasendatabasoch återskapar |
Kompilatorvarning (nivå 1) C4172 | returnerar adressen för den lokala eller den tillfälliga variabeln optional_context |
Kompilatorvarning (nivå 1) C4174 | "namn": inte tillgängligt som en #pragma component |
Kompilatorvarning (nivå 1) C4175 |
#pragma component(browser, on) : webbläsarinformation måste först anges på kommandoraden |
Kompilatorvarning (nivå 1) C4176 | "underkomponent": okänd underkomponent för #pragma component webbläsare |
Kompilatorvarning (nivå 1) C4177 |
#pragma
pragmaska endast användas i globalt omfång eller namnområdesomfång |
Kompilatorvarning (nivå 1) C4178 |
case konstanten 'konstant' för stor för typen av switch-uttrycket |
Kompilatorvarning (nivå 4, inte längre genererad) C4179 | "//* ": tolkas som "/ " och "/\* ": förvirring med standard "// " kommentarer |
Kompilatorvarning (nivå 1) C4180 | kvalificeraren som tillämpas på funktionstypen har ingen betydelse och därför ignoreras. |
Kompilatorvarning C4181 | Kvalifikator som tillämpas på referenstyp ignoreras. |
Kompilatorvarning (nivå 1) C4182 |
#include kapslingsnivån är nest_count djup; möjlig oändlig rekursion |
Kompilatorvarning (nivå 1) C4183 | "identifierare": returtyp saknas; antas vara en medlemsfunktion som returnerar "int " |
Kompilatorvarning (nivå 1) C4185 | ignorerar okänd # import attribut 'attribut' |
Kompilatorvarning (nivå 1) C4186 |
#
import attributet 'attributet' kräver argumentantal argument; ignoreras |
Kompilatorvarning (nivå 1) C4187 |
#import attributenattribute1ochattribute2är inkompatibla. båda ignoreras |
Kompilatorvarning (nivå 1) C4188 | konstant uttryck är inte integrerad |
Kompilatorvarning (nivå 3 och nivå 4) C4189 | "identifierare": lokal variabel initieras men refereras inte |
Kompilatorvarning (nivå 1) C4190 | "identifier1" har C-länkning angivet, men returnerar "identifier2" som är inkompatibel med C |
Kompilatorvarning (nivå 3, av) C4191 | "åtgärd": osäker konvertering från "type_of_expression" till "type_required" Om du gör ett funktionsanrop med hjälp av den resulterande pekaren kan programmet misslyckas |
Kompilatorvarning (nivå 3) C4192 | utesluter automatisktidentifierarenär typbiblioteket importerasbibliotek |
Kompilatorvarning (nivå 3) C4193 |
#pragma warning(pop) : ingen matchande "#pragma warning(push) " |
Kompilatorvarning (nivå 1) C4194 |
#pragma start_map_region kan inte kapslas in och ignoreras |
Kompilatorvarning (nivå 1) C4195 |
#pragma stop_map_region används utan att matcha #pragma start_map_region ; Ignoreras |
Kompilatorvarning (nivå 1) C4196 | expected "token1" eller "token2"; hittade "token3" |
Kompilatorvarning (nivå 3) C4197 | "type": volatile på högsta nivån i gjutningen ignoreras |
Kompilatorvarning (nivå 1, nivå 2, nivå 3 och nivå 4) C4199 | meddelande |
Se även
C/C++ Kompilator- och byggverktygsfel och varningar
Kompilerarvarningar C4000 – C5999