Čo je chyba 'nedeklarovaný identifikátor' a ako ju opraviť?

Čo sú chyby nedeklarovaného identifikátora? Aké sú ich bežné príčiny a ako ich odstrániť?

Príklady textov chýb:

  • Pre kompilátor Visual Studio: C2065: 'cout' : nedeklarovaný identifikátor`
  • Pre kompilátor GCC: 'cout' undeclared (first use in this function)

Najčastejšie sa vyskytujú v dôsledku toho, že sa zabudne zahrnúť hlavičkový súbor, ktorý obsahuje deklaráciu funkcie, napríklad tento program vyhodí chybu 'undeclared identifier':

Chýba hlavička


int main() {
    std::cout 
Komentáre (4)

V jazykoch C a C++ musia byť všetky názvy deklarované pred ich použitím. Ak sa pokúsite použiť názov premennej alebo funkcie, ktorá nebola deklarovaná, dostanete chybu "undeclared identifier".

Funkcie sú však v jazyku C (a len v ňom) špeciálnym prípadom v tom, že ich nemusíte najprv deklarovať. Prekladač jazyka C bude predpokladať, že funkcia existuje s počtom a typom argumentov ako pri volaní. Ak tomu skutočná definícia funkcie nezodpovedá, dostanete ďalšiu chybu. Tento špeciálny prípad pre funkcie v jazyku C++ neexistuje.

Chyby tohto druhu odstránite tak, že sa uistíte, že funkcie a premenné sú deklarované pred ich použitím. V prípade funkcie printf je potrebné zahrnúť hlavičkový súbor (alebo v C++).

V prípade štandardných funkcií odporúčam pozrieť si napr. stránku tento odkaz a vyhľadať funkcie, ktoré chcete používať. V dokumentácii ku každej funkcii sa dozviete, aký hlavičkový súbor potrebujete.

Komentáre (0)

Je to ako Použitie funkcie bez jej deklarovania. hlavičkový súbor bude obsahovať funkciu printf(). Zahrňte hlavičkový súbor do svojho programu to je riešenie pre tento prípad. Niektoré používateľom definované funkcie môžu tiež spôsobiť chybu, ak nie sú deklarované pred ich použitím. Ak sa používa globálne, nie sú žiadne problémy.

Komentáre (0)