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_cast o __try_cast dynamic_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