Condividi tramite


Avvisi del compilatore C/C++ da C4200 a C4399

Gli articoli di questa sezione descrivono i messaggi di avviso del compilatore C/C++ da C4200 a C4399.

Importante

I compilatori e gli strumenti di compilazione di Visual Studio possono segnalare molti tipi di errori e avvisi. Dopo aver trovato un errore o un avviso, gli strumenti di compilazione possono fare ipotesi sulla finalità del codice e tentare di continuare, in modo che più problemi possano essere segnalati contemporaneamente. Se la supposizione degli strumenti non è corretta, gli errori o avvisi successivi potrebbero non essere applicabili al progetto. Quando si correggono i problemi nel progetto, iniziare sempre con il primo errore o avviso restituito e ricompilare spesso. Una correzione può causare la scomparsa di molti errori successivi.

Per ottenere informazioni su un messaggio di diagnostica specifico in Visual Studio, selezionarlo nella finestra Output e premere F1. Visual Studio apre la pagina della documentazione per tale errore, se presente. È anche possibile usare lo strumento di ricerca nella parte superiore della pagina per trovare articoli su errori o avvisi specifici. In alternativa, esplorare l'elenco di errori e avvisi per strumento e digitare il sommario in questa pagina.

Nota

Non tutti gli errori o gli avvisi di Visual Studio sono documentati. In molti casi, il messaggio di diagnostica fornisce tutte le informazioni disponibili. Se sei arrivato in questa pagina quando hai usato F1 e pensi che il messaggio di errore o avviso richieda spiegazioni aggiuntive, comunicaci. È possibile usare i pulsanti di feedback in questa pagina per generare un problema di documentazione in GitHub. Se si ritiene che l'errore o l'avviso non sia corretto o si è riscontrato un altro problema con il set di strumenti, segnalare un problema di prodotto nel sito Della community degli sviluppatori. È anche possibile inviare commenti e suggerimenti e immettere bug nell'IDE. In Visual Studio passare alla barra dei menu e scegliere Guida > Per inviare commenti e > suggerimenti segnala un problema oppure inviare un suggerimento usando La Guida > invia > commenti e suggerimenti Invia un suggerimento. Alcuni argomenti relativi agli errori del compilatore sono stati creati che non vengono generati dal compilatore e ora reindirizzano a questa pagina.

È possibile trovare ulteriore assistenza per errori e avvisi nei forum di domande e risposte di Microsoft Learn. In alternativa, cercare il numero di errore o di avviso nel sito della community degli sviluppatori di Visual Studio C++. È anche possibile cercare Stack Overflow per trovare soluzioni.

Per i collegamenti ad altre risorse della Guida e della community, vedere Guida e community di Visual C++.

Messaggi di avviso

Avviso Messaggio
Avviso del compilatore (livello 2 e livello 4) C4200 estensione non standard usata: matrice con dimensioni zero in struct/union
Avviso del compilatore (livello 4) C4201 estensione non standard usata: struct/unione senza nome
Avviso del compilatore (livello 4) C4202 estensione non standard usata: '...': parametro prototype nell'elenco dei nomi non valido
Avviso del compilatore C4203 estensione non standard usata: unione con variabile membro statica
Avviso del compilatore (livello 4) C4204 estensione non standard usata: inizializzatore di aggregazione non costante
Avviso del compilatore (livello 4) C4205 estensione non standard usata: dichiarazione di funzione statica nell'ambito della funzione
Avviso del compilatore (livello 4) C4206 estensione non standard usata: l'unità di conversione è vuota
Avviso del compilatore (livello 4) C4207 estensione non standard usata: modulo inizializzatore esteso
Avviso del compilatore (livello 4) C4208 estensione non standard usata: delete [exp] - exp valutato ma ignorato
Avviso del compilatore (livello 4) C4210 estensione non standard usata: funzione specificata nell'ambito del file
Avviso del compilatore (livello 4) C4211 estensione non standard usata: ridefinito extern in statico
Avviso del compilatore (livello 4) C4212 estensione non standard usata: dichiarazione di funzione usata con i puntini di sospensione
Avviso del compilatore (livello 4) C4213 estensione non standard usata: cast su l-value
Avviso del compilatore (livello 4) C4214 estensione non standard usata: tipi di campo di bit diversi da int
Avviso del compilatore (livello 1) C4215 estensione non standard usata: long float
Avviso del compilatore (livello 1) C4216 estensione non standard usata: float long
Avviso del compilatore (livello 4) C4218 estensione non standard usata: deve specificare almeno una classe di archiviazione o un tipo
Avviso del compilatore (livello 4) C4220 varargs corrisponde ai parametri rimanenti
Avviso del compilatore (livello 4) C4221 estensione non standard usata: 'identifier': non può essere inizializzata usando l'indirizzo della variabile automatica 'variable'
Avviso del compilatore (livello 1 e livello 4) C4223 estensione non standard usata: matrice non lvalue convertita in puntatore
Avviso del compilatore (livello 1) C4224 estensione non standard usata: il parametro formale 'identifier' è stato definito in precedenza come tipo
Avviso del compilatore (livello 1, errore) C4226 estensione non standard usata: 'keyword' è una parola chiave obsoleta
Avviso del compilatore (livello 1) C4227 anachronism usato: i qualificatori sul riferimento vengono ignorati
Avviso del compilatore (livello 1) C4228 estensione non standard usata: i qualificatori dopo la virgola nell'elenco dichiaratore vengono ignorati
Avviso del compilatore (livello 1, errore) C4229 anachronism usato: i modificatori sui dati vengono ignorati
Avviso del compilatore (livello 1) C4230 anachronismo utilizzato: modificatori/qualificatori interspersi; qualificatore ignorato
Avviso del compilatore (livello 4) C4232 estensione non standard usata: 'identifier': l'indirizzo di dllimport 'dllimport' non è statico, identità non garantita
Avviso del compilatore (livello 1, errore) C4233 estensione non standard usata: parola chiave 'keyword' supportata solo in C++, non C
Avviso del compilatore (livello 4, errore) C4234 estensione non standard usata: parola chiave 'keyword' riservata per uso futuro
Avviso del compilatore (livello 1, errore) C4235 estensione non standard usata: parola chiave 'keyword' non supportata in questa architettura
Avviso del compilatore (livello 1) C4237 La parola chiave 'keyword' non è ancora supportata, ma è riservata per uso futuro
Avviso del compilatore (livello 4) C4238 estensione non standard usata: classe rvalue usata come lvalue
Avviso del compilatore (livello 4) C4239 estensione non standard usata: 'token': conversione da 'type1' a 'type2'
Avviso del compilatore (livello 3) C4240 estensione non standard usata: l'accesso a 'classname' ora definito come 'access_specifier1', in precedenza era definito come 'access_specifier2'
Avviso del compilatore (livello 3, off) C4242 'identifier': conversione da 'type1' a 'type2', possibile perdita di dati
Avviso del compilatore (livello 3) C4243 conversion_type conversione da 'type1' a 'type2' esiste, ma non è accessibile
Avviso del compilatore (livello 2) C4244 'conversion_type': conversione da 'type1' a 'type2', possibile perdita di dati
Avviso del compilatore (livello 2 e livello 3 e livello 4) C4244 'conversion_type': conversione da 'type1' a 'type2', possibile perdita di dati
Avviso del compilatore (livello 4) C4245 'conversion_type': conversione da 'type1' a 'type2', signed/unsigned non corrispondente
Avviso del compilatore (livello 2) C4250 'classname': eredita 'base_classname::member' tramite dominanza
Avviso del compilatore (livello 2) C4251 'object_type1': 'identifier1' deve avere dll-interface da usare dai client di 'identfier2'
Avviso del compilatore (livello 4, off) C4254 'operator': conversione da 'type1':'field_bits' a 'type2':'field_bits', possibile perdita di dati
Avviso del compilatore (livello 4, off) C4255 'function': no function prototype given: converting '()' to '(void)'
Avviso del compilatore (livello 4) C4256 'function': il costruttore per la classe con basi virtuali ha '...'; le chiamate potrebbero non essere compatibili con le versioni precedenti di Visual C++
Avviso del compilatore (livello 1) C4258 'variable': la definizione del ciclo for viene ignorata. Viene usata la definizione dell'ambito di inclusione
Avviso del compilatore (livello 4, off) C4263 'function': la funzione membro non esegue l'override di alcuna funzione membro della classe di base
Avviso del compilatore (livello 4, disattivato) C4264 'virtual_function': nessun override disponibile per la funzione membro virtuale dalla base 'classname'; la funzione è nascosta
Avviso del compilatore (livello 3, disattivato) C4265 'classname': la classe dispone di funzioni virtuali, ma il distruttore non semplice non è virtuale. Le istanze di questa classe potrebbero non essere destruite correttamente
Avviso del compilatore (livello 4, off) C4266 'virtual_function': nessun override disponibile per la funzione membro virtuale dalla base 'classname'; la funzione è nascosta
Avviso del compilatore (livello 3) C4267 'variable': conversione da 'size_t' a 'type', possibile perdita di dati
Avviso del compilatore (livello 4) C4268 'identifier': dati statici/globali 'const' inizializzati con il costruttore predefinito generato dal compilatore riempie l'oggetto con zeri
Avviso del compilatore (livello 1) C4269 'identifier': dati automatici 'const' inizializzati con il costruttore predefinito generato dal compilatore genera risultati inaffidabili
Avviso del compilatore (livello 1) C4272 'function': è contrassegnato __declspec(dllimport); deve specificare una convenzione di chiamata nativa durante l'importazione di una funzione.
Avviso del compilatore (livello 1) C4273 'function': collegamento dll incoerente
Avviso del compilatore (livello 1) C4274 #ident ignorato; vedere la documentazione per #pragma comment(exestr, 'string')
Avviso del compilatore (livello 2) C4275 non dll-interface classkey 'identifier1' usato come base per la classkey dell'interfaccia DLL 'identifier2'
Avviso del compilatore (livello 1) C4276 'function': nessun prototipo fornito; non si presuppone alcun parametro
Avviso del compilatore (livello 1) C4277 l'elemento importato 'classname::member' esiste sia come membro dati che come membro della funzione; membro dati ignorato
Avviso del compilatore (livello 3 e livello 4) C4278 'identifier': identificatore nella libreria dei tipi 'library' è già una macro; usare il qualificatore 'rename'
Avviso del compilatore (livello 3 e livello 4) C4279 'identifier': identificatore nella libreria dei tipi 'library' è una parola chiave; usare il qualificatore 'rename'
Avviso del compilatore (livello 3) C4280 'operator ->' è stato ricorsivo tramite il tipo 'type'
Avviso del compilatore (livello 3) C4281 La ricorsione 'operator ->' si è verificata tramite il tipo 'type1'
Avviso del compilatore (livello 3) C4282 quindi tramite il tipo 'type2'
Avviso del compilatore (livello 3) C4283 e tramite il tipo 'typeN'
Avviso del compilatore (livello 2) C4285 il tipo restituito per 'identifier::operator ->' è ricorsivo se applicato usando la notazione infix
Avviso del compilatore (livello 1) C4286 'derived_type': viene intercettata dalla classe base ('base_type') sulla riga line_number
Avviso del compilatore (livello 3, disattivato) C4287 'operator': mancata corrispondenza costante senza segno/negativo
Avviso del compilatore (livello 1) C4288 estensione non standard usata: 'variable': la variabile di controllo del ciclo dichiarata nel ciclo for viene usata all'esterno dell'ambito del ciclo for; è in conflitto con la dichiarazione nell'ambito esterno
Avviso del compilatore (livello 4, disattivato) C4289 estensione non standard usata: 'variable': variabile di controllo del ciclo dichiarata nel ciclo for viene usata all'esterno dell'ambito del ciclo for
Avviso del compilatore (livello 3) C4290 Specifica di eccezione C++ ignorata tranne per indicare che una funzione non è __declspec(nothrow)
Avviso del compilatore (livello 1) C4291 'declaration': nessuna operazione di eliminazione dell'operatore corrispondente trovata; la memoria non verrà liberata se l'inizializzazione genera un'eccezione
Avviso del compilatore (livello 1) C4293 'shift_operator': numero di turni negativo o troppo grande, comportamento non definito
Avviso del compilatore (livello 4) C4295 'array': la matrice è troppo piccola per includere un carattere null di terminazione
Avviso del compilatore (livello 4, disattivato) C4296 'operator': expression is always boolean_value
Avviso del compilatore (livello 1) C4297 'function': funzione si presuppone che non venga generata un'eccezione, ma non
Avviso del compilatore (livello 4) C4298 'identifier': identificatore nella libreria dei tipi 'library' è già una macro; ridenominazione di '__identifier'
Avviso del compilatore (livello 4) C4299 'identifier': identificatore nella libreria dei tipi 'library' è una parola chiave; ridenominazione di '__identifier'
Avviso del compilatore C4301 'derived_class::function': l'override della funzione virtuale differisce solo da 'base_class::function' per qualificatore const/volatile
Avviso del compilatore (livello 2) C4302 'conversion': troncamento da 'type1' a 'type2'
Avviso del compilatore (non più generato) C4303 Il cast in stile C da 'type1' a 'type2' è deprecato, usare static_casto __try_castdynamic_cast
Avviso del compilatore (livello 1 e livello 2 e livello 4) C4305 'conversion': troncamento da 'type1' a 'type2'
Avviso del compilatore (livello 4) C4306 'conversion': conversione da 'type1' a 'type2' di dimensioni maggiori
Avviso del compilatore (livello 2) C4307 'operator': overflow costante integrale con segno
Avviso del compilatore (livello 2) C4308 costante integrale negativa convertita in un tipo senza segno
Avviso del compilatore (livello 2) C4309 'conversion': troncamento del valore costante
Avviso del compilatore (livello 4) C4310 cast tronca il valore costante
Avviso del compilatore (livello 1) C4311 'variable': troncamento del puntatore da 'type1' a 'type2'
Avviso del compilatore (livello 1) C4312 'operation': conversione da 'type1' a 'type2' di dimensioni maggiori
Avviso del compilatore (livello 1) C4313 'function': '%format_specifier' in conflitto di stringhe di formato con l'argomento argument_number di tipo 'type'
Avviso del compilatore C4314 parametro pragma previsto come '32' o '64'
Avviso del compilatore (livello 4) C4315 'classname': il puntatore 'this' per il membro 'member' potrebbe non essere allineato come previsto dal costruttore
Avviso del compilatore (livello 3) C4316 'identifier': l'oggetto allocato nell'heap potrebbe non essere allineato
Avviso del compilatore (livello 1) C4317 'printf_family': argomenti non sufficienti passati per la stringa di formato
Avviso del compilatore C4318 passando la costante zero come lunghezza al memset
Avviso del compilatore (livello 1) C4319 'operator': zero extending 'type1' to 'type2' of greater size
Avviso del compilatore (livello 1) C4321 generazione automatica di un IID per l'interfaccia 'interface'
Avviso del compilatore (livello 1) C4322 generazione automatica di un CLSID per la classe 'class'
Avviso del compilatore (livello 1) C4323 riutilizzo del CLSID registrato per la classe 'class'
Avviso del compilatore (livello 4) C4324 'structname': la struttura è stata riempita a causa dell'identificatore di allineamento
Avviso del compilatore (livello 1) C4325 attributi per la sezione standard 'section' ignorata
Avviso del compilatore (livello 1) C4326 il tipo restituito 'function' deve essere 'type1' anziché 'type2'
Avviso del compilatore C4327 'assignment': l'allineamento indiretto di LHS ('alignment1') è maggiore di RHS ('alignment2')
Avviso del compilatore C4328 'function': l'allineamento indiretto del parametro formale parameter_number (parameter_alignment) è maggiore dell'allineamento effettivo degli argomenti (argument_alignment)
Avviso del compilatore (livello 1) C4329 l'identificatore di allineamento viene ignorato nell'enumerazione
Avviso del compilatore (livello 1) C4330 attributo 'attribute' per la sezione 'section' ignorato
Avviso del compilatore (livello 1) C4333 'shift_operator': spostamento a destra per quantità eccessiva, perdita di dati
Avviso del compilatore (livello 3) C4334 'shift_operator': risultato di uno spostamento a 32 bit convertito in modo implicito in 64 bit (è previsto uno spostamento a 64 bit?)
Avviso del compilatore (livello 1) C4335 Rilevato formato di file Mac: convertire il file di origine in formato DOS o UNIX
Avviso del compilatore (livello 4) C4336 importare la libreria dei tipi a cui si fa riferimento incrociato 'library1' prima di importare 'library2'
Avviso del compilatore (livello 4) C4337 la libreria dei tipi a cui si fa riferimento incrociato 'library1' in 'library2' viene importata automaticamente
Avviso del compilatore (livello 4) C4338 direttiva #pragma: viene usata la sezione standard 'section'
Avviso del compilatore (livello 4, off) C4339 'type': uso del tipo non definito rilevato in 'WinRT|Meta-dati CLR: l'uso di questo tipo può causare un'eccezione di runtime
Avviso del compilatore (livello 1) C4340 'value': valore di cui è stato eseguito il wrapping da un valore positivo a un valore negativo
Avviso del compilatore (livello 1, disattivato, non più generato) C4342 modifica del comportamento: 'function' chiamata, ma è stato chiamato un operatore membro nelle versioni precedenti
Avviso del compilatore (livello 4) C4343 #pragma optimize("g",off)opzione override /Og
Avviso del compilatore (livello 1) C4344 modifica del comportamento: l'uso di argomenti di modello espliciti comporta la chiamata a 'function'
Avviso del compilatore (livello 1) C4346 'name': il nome dipendente non è un tipo
Avviso del compilatore (livello 1) C4348 'type': ridefinizione del parametro predefinito: parametro parameter_number
Avviso del compilatore (livello 1, disattivato, non più generato) C4350 modifica del comportamento: 'member1' chiamato invece di 'member2'
Avviso del compilatore (livello 1) C4352 'identifier': funzione intrinseca già definita
Avviso del compilatore (livello 1) C4353 estensione non standard usata: costante 0 come espressione di funzione. Usare invece '__noop' funzione intrinseca
Avviso del compilatore (livello 1 e livello 4, disattivato) Avviso del compilatore C4355(livello 1 e livello 4) C4355 'this': usato nell'elenco di inizializzatori dei membri di base
Avviso del compilatore (livello 2) C4356 'member': il membro dati statico non può essere inizializzato tramite la classe derivata
Avviso del compilatore (livello 3) C4357 Argomento della matrice param trovato nell'elenco di argomenti formali per il delegato 'delegate' ignorato durante la generazione di 'function'
Avviso del compilatore (livello 1) C4358 'operator': tipo restituito di delegati combinati non è 'void'; il valore restituito non è definito
Avviso del compilatore (livello 1 e livello 3) C4359 'type': l'identificatore di allineamento è minore dell'allineamento effettivo (allineamento) e verrà ignorato.
Avviso del compilatore (livello 2) C4362 'type': l'allineamento maggiore di 8 byte non è supportato da CLR
Avviso del compilatore (livello 1) C4364 #using per l'assembly 'assembly' visualizzato in precedenza in posizione (line_number) senza as_friend attributo; as_friend non applicato
Avviso del compilatore (livello 4, off) C4365 'expression': conversione da 'type1' a 'type2', signed/unsigned non corrispondente
Avviso del compilatore (livello 4) C4366 Il risultato dell'operatore 'operator' unario può essere non allineato
Avviso del compilatore (livello 3) C4367 La conversione da 'type1' a 'type2' può causare un'eccezione di allineamento del tipo di dati
Avviso del compilatore (livello 1, errore) C4368 impossibile definire 'member' come membro di 'tipo' gestito: i tipi misti non sono supportati
Avviso del compilatore (livello 1) C4369 'enumerator': il valore dell'enumeratore 'value' non può essere rappresentato come 'type', il valore è 'new_value'
Avviso del compilatore (livello 4, non più generato) C4370 'classname': il layout della classe è cambiato rispetto a una versione precedente del compilatore a causa di una migliore compressione
Avviso del compilatore (livello 3, off) C4371 'classname': il layout della classe potrebbe essere cambiato rispetto a una versione precedente del compilatore a causa di una migliore compressione del membro 'member'
Avviso del compilatore (livello 4) C4373 'function': la funzione virtuale esegue l'override di 'base_class_function', le versioni precedenti del compilatore non hanno eseguito l'override quando i parametri differiscono solo per i qualificatori const/volatile
Avviso del compilatore (livello 1) C4374 'function1': il metodo di interfaccia non verrà implementato dal metodo non virtuale 'function2'
Avviso del compilatore (livello 1) C4375 il metodo non pubblico 'method2' non esegue l'override di 'method2'
Avviso del compilatore (livello 1) C4376 l'identificatore di accesso 'specifier1 specifier2:' non è più supportato: usare 'new_specifier:'
Avviso del compilatore (livello 1) C4377 i tipi nativi sono privati per impostazione predefinita; -d1PrivateNativeTypes è deprecato
Avviso del compilatore (livello 1) C4378 Deve ottenere puntatori a funzione per eseguire gli inizializzatori; prendere in considerazione System::ModuleHandle::ResolveMethodHandle
Avviso del compilatore (livello 1) C4379 La versione 'version_number' di Common Language Runtime non è supportata da questo compilatore. L'uso di questa versione può causare risultati imprevisti
Avviso del compilatore (livello 1, errore) C4380 'class': un costruttore predefinito non può essere deprecato
Avviso del compilatore (livello 1) C4381 'function1': il metodo di interfaccia non verrà implementato dal metodo non pubblico 'function2'
Avviso del compilatore (livello 1) C4382 throwing 'type': un tipo con __clrcall distruttore o costruttore di copia può essere intercettato solo nel /clr:pure modulo
Avviso del compilatore (livello 1) C4383 'instance_dereference_operator': il significato della dereferenziazione di un handle può cambiare, quando esiste un operatore 'instance_dereference_operator' definito dall'utente; scrivere l'operatore come funzione statica per essere esplicito sull'operando
Avviso del compilatore (livello 1) C4384 #pragma 'pragma_name' deve essere usato solo nell'ambito globale
Avviso del compilatore (livello 3) C4387 'alternative': è stato considerato
Avviso del compilatore (livello 4, off) C4388) 'expression': signed/unsigned non corrispondente
Avviso del compilatore (livello 4) C4389 'operator': signed/unsigned non corrispondente
Avviso del compilatore (livello 3) C4390 ';': istruzione controllata vuota trovata; è questa la finalità?
Avviso del compilatore (livello 1) C4391 'function_signature': tipo restituito non corretto per la funzione intrinseca, previsto 'type'
Avviso del compilatore (livello 1, errore) C4392 'function_signature': numero errato di argomenti per la funzione intrinseca, argomenti 'argument_count' previsti
Avviso del compilatore (livello 1) C4393 'variable': const non ha alcun effetto sul membro dati letterale ; ignorato
Avviso del compilatore (livello 1, errore) C4394 'function': il simbolo per appdomain non deve essere contrassegnato con __declspec(dllexport)
Avviso del compilatore (livello 1) C4395 'function': la funzione membro verrà richiamata su una copia del membro dati initonly 'member'
Avviso del compilatore (livello 2) C4396 'function': l'identificatore inline non può essere usato quando una dichiarazione friend fa riferimento a una specializzazione di un modello di funzione
Avviso del compilatore (livello 1) C4397 DefaultCharSetAttribute viene ignorato
Avviso del compilatore (livello 3) C4398 'variable': l'oggetto globale per processo potrebbe non funzionare correttamente con più domini app. Prendere in considerazione l'uso di __declspec(appdomain)
Avviso del compilatore (livello 1, errore) C4399 'symbol': il simbolo per processo non deve essere contrassegnato con __declspec(dllimport) quando viene compilato con /clr:pure

Vedi anche

Errori e avvisi del compilatore C/C++ e degli strumenti di compilazione
Avvisi del compilatore C4000 - C5999