Cos'è un 'undeclared identifier' errore e come lo risolvo?
Cosa sono gli errori degli identificatori non dichiarati? Quali sono le cause comuni e come si risolvono?
Esempi di testi di errore:
- Per il compilatore Visual Studio:
errore C2065: 'cout' : identificatore non dichiarato
. - Per il compilatore GCC:
'cout' undeclared (first use in this function)
46
3
Il più delle volte vengono dalla dimenticanza di includere il file header che contiene la dichiarazione della funzione, per esempio, questo programma darà un 'identificatore non dichiarato' errore:
Intestazione mancante
In C e C++ tutti i nomi devono essere dichiarati prima di essere usati. Se cercate di usare il nome di una variabile o di una funzione che non è stata dichiarata, otterrete un errore "undeclared identifier".
Tuttavia, le funzioni sono un caso speciale in C (e solo in C) in quanto non è necessario dichiararle prima. Il compilatore C assume che la funzione esista con il numero e il tipo di argomenti come nella chiamata. Se l'effettiva definizione della funzione non corrisponde a ciò, si otterrà un altro errore. Questo caso speciale per le funzioni non esiste in C++.
Si corregge questo tipo di errori assicurandosi che le funzioni e le variabili siano dichiarate prima di essere usate. Nel caso di
printf
hai bisogno di includere il file header(o
in C++).Per le funzioni standard, ti consiglio di controllare ad esempio questo sito di riferimento, e cercare le funzioni che vuoi usare. La documentazione per ogni funzione ti dice di quale file di intestazione hai bisogno.
È come usare la funzione senza dichiararla. Il file header stdio.h> conterrà la funzione printf(). Includete il file di intestazione nel vostro programma questa è la soluzione per questo. Alcune funzioni definite dall'utente possono anche avere un errore se non dichiarate prima di usarle. Se è usata globalmente nessun problema.