Wat is een 'undeclared identifier' fout en hoe los ik die op?

Wat zijn undeclared identifier errors? Wat zijn veel voorkomende oorzaken en hoe los ik ze op?

Voorbeeld fout teksten:

  • Voor de Visual Studio compiler: fout C2065: 'cout' : undeclared identifier
  • Voor de GCC compiler: 'cout' undeclared (eerste gebruik in deze functie)

Ze komen meestal doordat vergeten wordt het header-bestand dat de functiedeclaratie bevat op te nemen, bijvoorbeeld, dit programma zal een 'undeclared identifier' fout geven:

Ontbrekende header


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

In C en C++ moeten alle namen worden gedeclareerd voordat ze worden gebruikt. Als u probeert de naam van een variabele of een functie te gebruiken die niet is gedeclareerd, krijgt u een "undeclared identifier" foutmelding.

Echter, functies zijn een speciaal geval in C (en alleen in C) in die zin dat je'ze niet eerst hoeft te declareren. De C compiler zal aannemen dat de functie bestaat met het aantal en type argumenten zoals in de aanroep. Als de werkelijke functie-definitie daar niet mee overeenkomt, krijg je een andere foutmelding. Dit speciale geval voor functies bestaat niet in C++.

U lost dit soort fouten op door ervoor te zorgen dat functies en variabelen worden gedeclareerd voordat ze worden gebruikt. In het geval van printf moet je het header bestand includen (of in C++).

Voor standaard functies, raad ik u aan om bijvoorbeeld deze referentie site te raadplegen, en te zoeken naar de functies die u wilt gebruiken. De documentatie voor elke functie vertelt je welk header bestand je nodig hebt.

Commentaren (0)

Het is alsof je de functie gebruikt zonder hem te declareren. header bestand zal de functie printf(). Neem het header bestand op in je programma dit is de oplossing voor dat. Sommige door de gebruiker gedefinieerde functies kunnen ook een fout krijgen als ze niet worden gedeclareerd voordat ze worden gebruikt. Als het globaal wordt gebruikt geen problemen.

Commentaren (0)