¿Qué es un error de 'identificador no declarado' y cómo se soluciona?

¿Qué son los errores de identificadores no declarados? ¿Cuáles son las causas más comunes y cómo se solucionan?

Ejemplos de textos de error:

  • Para el compilador de Visual Studio: error C2065: 'cout' : undeclared identifier
  • Para el compilador GCC: 'cout' undeclared (first use in this function)

La mayoría de las veces provienen de olvidar incluir el archivo de cabecera que contiene la declaración de la función, por ejemplo, este programa dará un error de 'identificador no declarado':

Falta la cabecera


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

En C y C++ todos los nombres tienen que ser declarados antes de ser utilizados. Si intenta utilizar el nombre de una variable o una función que no ha sido declarada obtendrá un error de "identificador no declarado".

Sin embargo, las funciones son un caso especial en C (y sólo en C), ya que no es necesario declararlas primero. El compilador de C asumirá que la función existe con el número y tipo de argumentos como en la llamada. Si la definición real de la función no coincide con eso, obtendrá otro error. Este caso especial para las funciones no existe en C++.

Este tipo de errores se soluciona asegurándose de que las funciones y las variables se declaran antes de ser utilizadas. En el caso de printf necesitas incluir el fichero de cabecera (o en C++).

Para las funciones estándar, te recomiendo que consultes, por ejemplo, este sitio de referencia, y busques las funciones que quieras utilizar. La documentación de cada función te indica qué archivo de cabecera necesitas.

Comentarios (0)

Es como usar la función sin declararla. el archivo de cabecera contendrá la función printf(). Incluya el archivo de cabecera en su programa esta es la solución para eso. Algunas funciones definidas por el usuario también pueden dar error si no se declaran antes de usarlas. Si se usa globalmente no hay problemas.

Comentarios (0)