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)

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


int main() {
    std::cout 
Commentari (4)

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.

Commentari (0)

È 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.

Commentari (0)