Hva er en 'undeclared identifier' feil, og hvordan fikser jeg den?

Hva er ikke-deklarerte identifikatorfeil? Hva er vanlige årsaker, og hvordan løser jeg dem?

Eksempler på feiltekster:

  • For Visual Studio-kompilatoren: `feil C2065: 'cout': udeklarert identifikator'
  • For GCC-kompilatoren: 'cout' undeclared (første gangs bruk i denne funksjonen)

De kommer oftest fra å glemme å inkludere headerfilen som inneholder funksjonsdeklarasjonen, for eksempel vil dette programmet gi en 'undeclared identifier' -feil:

Manglende header


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

I C og C++ må alle navn deklareres før de brukes. Hvis du prøver å bruke navnet på en variabel eller en funksjon som ikke er deklarert, vil du få en "undeclared identifier"-feil.

Funksjoner er imidlertid et spesialtilfelle i C (og bare i C) ved at du ikke trenger å erklære dem først. C-kompilatoren vil anta at funksjonen eksisterer med antall og type argumenter som i anropet. Hvis den faktiske funksjonsdefinisjonen ikke samsvarer med dette, vil du få en annen feil. Dette spesialtilfellet for funksjoner finnes ikke i C++.

Du løser denne typen feil ved å sørge for at funksjoner og variabler er deklarert før de brukes. Når det gjelder printf må du inkludere headerfilen (eller i C++).

For standardfunksjoner anbefaler jeg at du sjekker f.eks. dette referansesiden, og søker etter funksjonene du vil bruke. Dokumentasjonen for hver funksjon forteller deg hvilken header-fil du trenger.

Kommentarer (0)

Det er som å bruke funksjonen uten å deklarere den. headerfilen vil inneholde funksjonen funksjonen printf(). Inkluder toppfilen i programmet ditt, dette er løsningen for det. Noen brukerdefinerte funksjoner kan også gi feil når de ikke er deklarert før de brukes. Hvis den brukes globalt er det ingen problemer.

Kommentarer (0)