Dela via


Microsoft C/C++-kompilatorvarningar C4200 till och med C4399

Artiklarna i det här avsnittet beskriver varningsmeddelanden för Microsoft C/C++-kompilatorn C4200 till C4399.

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å 2 och nivå 4) C4200 icke-standardtillägg som används: nollstor matris i struct/union
Kompilatorvarning (nivå 4) C4201 icke-standardtillägg som används: namnlös struct/union
Kompilatorvarning (nivå 4) C4202 icke-standardtillägg används: '...': prototypparameter i namnlistan är ogiltig
Kompilatorvarning C4203 icke-standardtillägg som används: union med statisk medlemsvariabel
Kompilatorvarning (nivå 4) C4204 icke-standardtillägg som används: icke-konstant aggregeringsinitierare
Kompilatorvarning (nivå 4) C4205 icke-standardtillägg som används: statisk funktionsdeklaration i funktionsomfånget
Kompilatorvarning (nivå 4) C4206 icke-standardtillägg som används: översättningsenheten är tom
Kompilatorvarning (nivå 4) C4207 icke-standardtillägg som används: utökat initieringsformulär
Kompilatorvarning (nivå 4) C4208 icke-standardtillägg som används: ta bort [exp] – exp utvärderas men ignoreras
Kompilatorvarning (nivå 4) C4210 icke-standardtillägg som används: funktion givet filomfång
Kompilatorvarning (nivå 4) C4211 icke-standardmässigt tillägg som används: omdefinierat extern till statiskt
Kompilatorvarning (nivå 4) C4212 icke-standardtillägg som används: funktionsdeklaration används ellips
Kompilatorvarning (nivå 4) C4213 icke-standardtillägg som används: gjuten på l-värde
Kompilatorvarning (nivå 4) C4214 icke-standardtillägg som används: andra bitfältstyper än int
Kompilatorvarning (nivå 1) C4215 icke-standardtillägg som används: long float
Kompilatorvarning (nivå 1) C4216 Använder icke-standardtillägg: flyttal lång
Kompilatorvarning (nivå 4) C4218 icke-standardtillägg som används: måste ange minst en lagringsklass eller en typ
Kompilatorvarning (nivå 4) C4220 varargs överensstämmer med återstående parametrar
Kompilatorvarning (nivå 4) C4221 icke-standardtillägg som används: "identifierare": kan inte initieras med hjälp av adressen för den automatiska variabeln "variabel"
Kompilatorvarning (nivå 1 och nivå 4) C4223 icke-standardtillägg som används: icke-lvalue-matris konverterad till pekare
Kompilatorvarning (nivå 1) C4224 icke-standardtillägg som används: den formella parametern "identifierare" definierades tidigare som en typ
Kompilatorvarning (nivå 1, fel) C4226 icke-standardtillägg som används: "nyckelord" är ett föråldrat nyckelord
Kompilatorvarning (nivå 1) C4227 Anakronism används: kvalifikationer vid referenser ignoreras
Kompilatorvarning (nivå 1) C4228 icke-standardmässigt tillägg som används: kvalificerare som kommer efter kommatecken i deklaratorlistan ignoreras
Kompilatorvarning (nivå 1, fel) C4229 anakronism används: modifierarna på data ignoreras
Kompilatorvarning (nivå 1) C4230 anakronism som används: modifierare/kvalificerare varvat; kvalificeraren ignoreras
Kompilatorvarning (nivå 4) C4232 icke-standardtillägg används: "identifierare": adress för dllimport "dllimport" är inte statisk, identiteten garanteras inte
Kompilatorvarning (nivå 1, fel) C4233 Icke-standardförlängning används: 'nyckelord' nyckelord stöds endast i C++, inte C
Kompilatorvarning (nivå 4, fel) C4234 icke-standardtillägg som används: nyckelord som är reserverat för framtida användning
Kompilatorvarning (nivå 1, fel) C4235 icke-standardtillägg används: nyckelord stöds inte på den här arkitekturen
Kompilatorvarning (nivå 1) C4237 Nyckelordet "nyckelord" stöds ännu inte, men är reserverat för framtida användning
Kompilatorvarning (nivå 4) C4238 Ostandardiserad tillägg används: rvalue-klass används som lvalue
Kompilatorvarning (nivå 4) C4239 icke-standardtillägg som används: "token": konvertering från "type1" till "type2"
Kompilatorvarning (nivå 3) C4240 icke-standardtillägg som används: åtkomst till "klassnamn" har nu definierats som "access_specifier1", tidigare definierades det som "access_specifier2"
Kompilatorvarning (nivå 3, av) C4242 "identifierare": konvertering från "type1" till "type2", eventuell dataförlust
Kompilatorvarning (nivå 3) C4243 conversion_type konvertering från "type1" till "type2" finns, men är inte tillgänglig
Kompilatorvarning (nivå 2) C4244 "conversion_type": konvertering från "type1" till "type2", eventuell dataförlust
Kompilatorvarning (nivå 2 och nivå 3 och nivå 4) C4244 "conversion_type": konvertering från "type1" till "type2", eventuell dataförlust
Kompilatorvarning (nivå 4) C4245 conversion_type: konvertering från type1 till type2, signerad/osignerad missanpassning
Kompilatorvarning (nivå 2) C4250 "classname": ärver "base_classname::member" via dominans
Kompilatorvarning (nivå 2) C4251 "type": "type1" måste ha dll-gränssnitt som ska användas av klienter av "type2"
Kompilatorvarning (nivå 4, av) C4254 operator: konvertering från "type1":"field_bits" till "type2":"field_bits", eventuell dataförlust
Kompilatorvarning (nivå 4, av) C4255 "function": ingen funktionsprototyp angiven: konvertera "()" till "(void)"
Kompilatorvarning (nivå 4) C4256 "function": konstruktorn för klassen med virtuella baser har "..."; anrop kanske inte är kompatibla med äldre versioner av Visual C++
Kompilatorvarning (nivå 1) C4258 "variabel": definitionen från for-loopen ignoreras; definitionen från det omgivande omfånget används
Kompilatorvarning (nivå 4, av) C4263 Funktion: Medlemsfunktionen åsidosätter inte någon virtuell medlemsfunktion för basklass
Kompilatorvarning (nivå 4, av) C4264 "virtual_function": ingen åsidosättning tillgänglig för virtuell medlemsfunktion från basen "klassnamn"; funktionen är dold
Kompilatorvarning (nivå 3, av) C4265 "classname": klassen har virtuella funktioner, men dess icke-triviala destruktor är inte virtuell; instanser av den här klassen kanske inte raderas korrekt"
Kompilatorvarning (nivå 4, av) C4266 "virtual_function": ingen åsidosättning tillgänglig för virtuell medlemsfunktion från basen "klassnamn"; funktionen är dold
Kompilatorvarning (nivå 3) C4267 "variabel": konvertering från "size_t" till "typ", eventuell dataförlust
Kompilatorvarning (nivå 4) C4268 "identifierare": "const" statiska/globala data initierade med kompilatorgenererad standardkonstruktor fyller objektet med nollor
Kompilatorvarning (nivå 1) C4269 "identifier": "const" automatiska data som initieras med kompilatorgenererad standardkonstruktor kan ge otillförlitliga resultat
Kompilatorvarning (nivå 1) C4272 "funktion": är markerad __declspec(dllimport); måste ange en intern anropskonvention när du importerar en funktion.
Kompilatorvarning (nivå 1) C4273 "function": inkonsekvent dll-länkning
Kompilatorvarning (nivå 1) C4274 #ident Ignoreras; se dokumentationen för #pragma comment(exestr, 'string')
Kompilatorvarning (nivå 2) C4275 icke dll-interface classkey "identifier1" som används som bas för dll-interface classkey "identifier2"
Kompilatorvarning (nivå 1) C4276 "funktion": ingen prototyp tillhandahålls; antog inga parametrar
Kompilatorvarning (nivå 1) C4277 det importerade objektet "classname::member" finns som både datamedlem och funktionsmedlem. datamedlem ignoreras
Kompilatorvarning (nivå 3 och nivå 4) C4278 "identifierare": identifieraren i typbiblioteket "bibliotek" är redan ett makro. använd kvalificeraren "byt namn"
Kompilatorvarning (nivå 3 och nivå 4) C4279 "identifierare": identifierare i typbiblioteket "bibliotek" är ett nyckelord; använd kvalificeraren "byt namn"
Kompilatorvarning (nivå 3) C4280 'operator ->' var självrekursiv genom typen "typ"
Kompilatorvarning (nivå 3) C4281 Rekursionenoperator -> inträffade genom typen "type1"
Kompilatorvarning (nivå 3) C4282 sedan genom typen "type2"
Kompilatorvarning (nivå 3) C4283 och genom typen "typeN"
Kompilatorvarning (nivå 2) C4285 returtypen för "identifierare::operator ->" är rekursiv om den tillämpas med hjälp av infix-notation
Kompilatorvarning (nivå 1) C4286 "derived_type": fångas av basklassen ("base_type") på rad line_number
Kompilatorvarning (nivå 3, av) C4287 Operator: osignerad/negativ konstant matchningsfel
Kompilatorvarning (nivå 1) C4288 Icke-standardtillägg som används: variabel: loopkontrollvariabeln som deklareras i for-slingan används utanför for-slingans omfång; den står i konflikt med deklarationen i det yttre omfånget.
Kompilatorvarning (nivå 4, av) C4289 Användning av icke-standardtillägg: variabel: loopkontrollvariabeln som deklarerats i for-slingan används utanför området för for-slingan
Kompilatorvarning (nivå 3) C4290 C++-undantagsspecifikationen ignoreras förutom för att indikera att en funktion inte är __declspec(nothrow)
Kompilatorvarning (nivå 1) C4291 "deklaration": ingen matchande operator delete hittades; minne kommer inte att frigöras om initieringen kastar ett undantag
Kompilatorvarning (nivå 1) C4293 "shift_operator": skiftantal negativt eller för stort, odefinierat beteende
Kompilatorvarning (nivå 4) C4295 Matris: matrisen är för liten för att innehålla ett avslutande null-tecken
Kompilatorvarning (nivå 4, av) C4296 "operator": uttrycket är alltid boolean_value
Kompilatorvarning (nivå 1) C4297 "function": funktionen antas inte utlösa ett undantag, men
Kompilatorvarning (nivå 4) C4298 "identifierare": identifieraren i typbiblioteket "bibliotek" är redan ett makro. byta namn till __identifier
Kompilatorvarning (nivå 4) C4299 "identifierare": identifierare i typbiblioteket "bibliotek" är ett nyckelord; byta namn till __identifier
Kompilatorvarning C4301 "derived_class::function": åsidosättande av virtuell funktion skiljer sig bara från "base_class::function" genom const/volatile-kvalificerare
Kompilatorvarning (nivå 2) C4302 "konvertering": trunkering från "type1" till "type2"
Kompilatorvarning (genereras inte längre) C4303 C-formatering från "type1" till "type2" är inaktuell, använder static_cast, __try_cast eller dynamic_cast
Kompilatorvarning (nivå 1 och nivå 2 och nivå 4) C4305 "konvertering": trunkering från "type1" till "type2"
Kompilatorvarning (nivå 4) C4306 "konvertering": konvertering från "type1" till "type2" av större storlek
Kompilatorvarning (nivå 2) C4307 "operator": signerat heltalskonstantoverflow
Kompilatorvarning (nivå 2) C4308 negativ integralkonstant konverterad till osignerad typ
Kompilatorvarning (nivå 2) C4309 "konvertering": trunkering av konstantvärde
Kompilatorvarning (nivå 4) C4310 gjutna trunkerar konstant värde
Kompilatorvarning (nivå 1) C4311 "variabel": pekaren trunkering från "type1" till "type2"
Kompilatorvarning (nivå 1) C4312 "operation": konvertering från "type1" till "type2" med större storlek
Kompilatorvarning (nivå 1) C4313 "function": "%format_specifier" i formatsträngen står i konflikt med argument argument_number av typen "typ"
Kompilatorvarning C4314 förväntade pragmaparametern vara "32" eller "64"
Kompilatorvarning (nivå 4) C4315 "classname": "den här" pekaren för medlemmens "medlem" kanske inte justeras som förväntat av konstruktorn
Kompilatorvarning (nivå 3) C4316 "identifierare": objektet som allokerats på heapen kanske inte är justerat
Kompilatorvarning (nivå 1) C4317 "printf_family" : inte tillräckligt med argument som skickats för formatsträngen
Kompilatorvarning C4318 skickar konstant noll som längden till memset
Kompilatorvarning (nivå 1) C4319 Operator: nollutvidgar "type1" till "type2" av större storlek
Kompilatorvarning (nivå 1) C4321 automatiskt generera ett ID för gränssnittet
Kompilatorvarning (nivå 1) C4322 genererar automatiskt ett CLSID för klassen "klass"
Kompilatorvarning (nivå 1) C4323 återanvända registrerat CLSID för klassen "klass"
Kompilatorvarning (nivå 4) C4324 "structname": Strukturen utökades på grund av en justeringsangivelse
Kompilatorvarning (nivå 1) C4325 attribut för standardavsnittet "section" ignoreras
Kompilatorvarning (nivå 1) C4326 returtypen för "funktion" ska vara "type1" i stället för "type2"
Kompilatorvarning C4327 "tilldelning": Indirekt justering av LHS ('alignment1') är större än RHS ('alignment2')
Kompilatorvarning C4328 "funktion": Indirekt justering av den formella parametern parameter_number (parameter_alignment) är större än den faktiska argumentjusteringen (argument_alignment)
Kompilatorvarning (nivå 1) C4329 justeringsspecifieraren ignoreras i enum
Kompilatorvarning (nivå 1) C4330 attributet "attribute" för avsnittet "section" ignoreras
Kompilatorvarning (nivå 1) C4333 "shift_operator": högerskift med för stort antal, dataförlust
Kompilatorvarning (nivå 3) C4334 "shift_operator": resultatet av 32-bitars skift konverteras implicit till 64 bitar (var 64-bitars skift avsett?)
Kompilatorvarning (nivå 1) C4335 Mac-filformat har identifierats: konvertera källfilen till antingen DOS- eller UNIX-format
Kompilatorvarning (nivå 4) C4336 importera korsreferensbiblioteket "library1" innan du importerar "library2"
Kompilatorvarning (nivå 4) C4337 korsreferensbiblioteket "library1" i "library2" importeras automatiskt
Kompilatorvarning (nivå 4) C4338 #pragma direktiv: standardavsnittet "section" används
Kompilatorvarning (nivå 4, av) C4339 "typ": användning av odefinierad typ upptäckt i WinRT/CLR-metadata – användning av denna typ kan leda till ett körningsundantag
Kompilatorvarning (nivå 1) C4340 värde: värde som går från positivt till negativt värde
Kompilatorvarning (nivå 1, av, inte längre genererad) C4342 ändrat beteende: "funktion" anropas, men en medlemsoperator anropades i tidigare versioner
Kompilatorvarning (nivå 4) C4343 #pragma optimize("g",off) överrider /Og-alternativet
Kompilatorvarning (nivå 1) C4344 beteendeförändring: användning av explicita mallargument resulterar i anrop till "funktion"
Kompilatorvarning (nivå 1) C4346 Namn: beroende namn är inte en typ
Kompilatorvarning (nivå 1) C4348 "type": omdefiniering av standardparameter: parameter parameter_number
Kompilatorvarning (nivå 1, av, inte längre genererad) C4350 beteendeförändring: "member1" anropas i stället för "member2"
Kompilatorvarning (nivå 1) C4352 "identifierare": inbyggd funktion som redan har definierats
Kompilatorvarning (nivå 1) C4353 Icke-standard tillägg används: konstanten 0 som funktionsuttryck. Använd den intrinsiska funktionen "__noop" i stället
Kompilatorvarning (nivå 1 och nivå 4, av) C4355 "this": används i grundläggande medlemsinitieringslista
Kompilatorvarning (nivå 2) C4356 "medlem": Statisk datamedlem kan inte initieras via härledd klass
Kompilatorvarning (nivå 3) C4357 param array-argument i den formella argumentlistan för delegeraren "delegate" ignoreras när "funktion" genereras
Kompilatorvarning (nivå 1) C4358 "operator": returtypen för kombinerade delegater är inte "void"; det returnerade värdet är odefinierat
Kompilatorvarning (nivå 1 och nivå 3) C4359 "type": Justeringsspecificeraren är mindre än den faktiska justeringen (justeringen) och ignoreras.
Kompilatorvarning (nivå 2) C4362 "type": justering som är större än 8 byte stöds inte av CLR
Kompilatorvarning (nivå 1) C4364 #using för sammansättningen "sammansättning" som tidigare setts på plats (line_number) utan as_friend attribut; as_friend inte tillämpad
Kompilatorvarning (nivå 4, av) C4365 uttryck: konvertering från "type1" till "type2", signerad/osignerad omatchning
Kompilatorvarning (nivå 4) C4366 Resultatet av den unära operatorn kan vara ojusterat
Kompilatorvarning (nivå 3) C4367 Konvertering från "type1" till "type2" kan orsaka feljustering av datatyp
Kompilatorvarning (nivå 1, fel) C4368 kan inte definiera "medlem" som medlem i hanterad "typ": blandade typer stöds inte
Kompilatorvarning (nivå 1) C4369 "uppräknare": uppräkningsvärdet "värde" kan inte representeras som "typ", värdet är "new_value"
Kompilatorvarning (nivå 4, inte längre genererad) C4370 "classname": layouten för klassen har ändrats från en tidigare version av kompilatorn på grund av bättre packning
Kompilatorvarning (nivå 3, av) C4371 "classname": layouten för klassen kan ha ändrats från en tidigare version av kompilatorn på grund av bättre packning av medlemmens "medlem"
Kompilatorvarning (nivå 4) C4373 "funktion": den virtuella funktionen åsidosätter "base_class_function", tidigare versioner av kompilatorn åsidosatte inte när parametrarna endast skiljde sig åt i fråga om konstant/volatile kvalificerare"
Kompilatorvarning (nivå 1) C4374 "function1": gränssnittsmetoden implementeras inte av den icke-virtuella metoden "function2"
Kompilatorvarning (nivå 1) C4375 icke-offentlig metod "method2" åsidosätter inte "method2"
Kompilatorvarning (nivå 1) C4376 åtkomstspecificeraren "specifier1specifier2:" stöds inte längre: använd "new_specifier:" i stället
Kompilatorvarning (nivå 1) C4377 ursprungliga typer är privata som standard; -d1PrivateNativeTypes är föråldrad
Kompilatorvarning (nivå 1) C4378 Måste hämta funktionspekare för att köra initiatorer; överväg System::ModuleHandle::ResolveMethodHandle
Kompilatorvarning (nivå 1) C4379 Version "version_number" av den vanliga språkkörningen stöds inte av den här kompilatorn. Användning av den här versionen kan orsaka oväntade resultat
Kompilatorvarning (nivå 1, fel) C4380 "klass": En standardkonstruktor kan inte vara föråldrad
Kompilatorvarning (nivå 1) C4381 "function1": gränssnittsmetoden kommer inte att implementeras med den icke-offentliga metoden "function2"
Kompilatorvarning (nivå 1) C4382 throwing "type": en typ med __clrcall destruktor eller kopieringskonstruktor kan endast fångas i /clr:pure modulen
Kompilatorvarning (nivå 1) C4383 "instance_dereference_operator": innebörden av att avreferera ett handtag kan ändras när det finns en användardefinierad instance_dereference_operator-operator; skriv operatorn som en statisk funktion för att vara explicit om operanden
Kompilatorvarning (nivå 1) C4384 #pragma "pragma_name" bör endast användas i globalt omfång
Kompilatorvarning (nivå 3) C4387 "alternativ": betraktades som
Kompilatorvarning (nivå 4, av) C4388 "uttryck": signerad/osignerad missmatchning
Kompilatorvarning (nivå 4) C4389 Operator: signerad/osignerad diskrepans
Kompilatorvarning (nivå 3) C4390 ';': tom kontrollerad instruktion hittades; Är det avsikten?
Kompilatorvarning (nivå 1) C4391 "function_signature": felaktig returtyp för inbyggd funktion, förväntad "typ"
Kompilatorvarning (nivå 1, fel) C4392 "function_signature": felaktigt antal argument för inbyggd funktion, förväntade argument för "argument_count"
Kompilatorvarning (nivå 1) C4393 "variabel": const har ingen effekt på literaldatamedlem; Ignoreras
Kompilatorvarning (nivå 1, fel) C4394 'function': symbolen per-appdomain bör inte markeras med __declspec(dllexport)
Kompilatorvarning (nivå 1) C4395 "funktion": medlemsfunktionen anropas på en kopia av initonly-datamedlemmen "medlem"
Kompilatorvarning (nivå 2) C4396 "funktion": den infogade specificeraren kan inte användas när en vändeklaration refererar till en specialisering av en funktionsmall
Kompilatorvarning (nivå 1) C4397 DefaultCharSetAttribute ignoreras
Kompilatorvarning (nivå 3) C4398 Variabel: det globala objektet per process kanske inte fungerar korrekt med flera appdomäner. överväg att använda__declspec(appdomain)
Kompilatorvarning (nivå 1, fel) C4399 symbol: per-process symbolen ska inte markeras med __declspec(dllimport) när symbolen kompileras med /clr:pure

Se även

C/C++ Kompilator- och byggverktygsfel och varningar
Kompilerarvarningar C4000 – C5999