[C con Clase] Hay cosas que nunca entenderé...

Steven Richard Davidson stevenrichard.davidson en gmail.com
Vie Oct 19 20:15:30 CEST 2007


Hola Alejandro,

On 10/19/07, Alejandro <alepelexo en yahoo.es> wrote:
>

[CORTE]

>     ////------------------------CONSTANTES---------------------------------\\\\\\\\\\\\\\\\\

Aquí está el problema. Al final de la línea agregas el "operador" \.
Este símbolo o marcador indica al (pre)compilador que el resto del
texto continúa en la siguiente línea. Básicamente, estás escribiendo
esto:

////------------------------CONSTANTES---------------------------------const
int LINTERNA = 1;
const int PILAS = 2;
...

Con esto, ahora puedes ver por qué el compilador dice que no existe 'LINTERNA'.

La solución es o bien usar el comentario de C: /**/ o bien eliminar
esas barras invertidas. También puedes dejar una línea vacía; o sea,

////------------------------CONSTANTES---------------------------------\\\\\\\\\\\\\\\\\

const int LINTERNA = 1;
const int PILAS = 2;
...

Sinceramente sugiero no usar estas barras por el problema que puede ocasionar.

>     const int LINTERNA = 1;
>     const int PILAS = 2;
>     const int LLAVE = 3;
>     const int CUERDA = 4;
>     const int BALON = 5;
>     const int CARNE = 6;
>     const int CUCHILLO = 7;
>     const int LOBOS = 8;
>     const int NOBJETOS = 8;
>
> .......................................
>
> ////-------------------INICIALIZACIÓN DE OBJETOS Y ANIMALES-------------------\\\\\\\\\\\\\\\\

Aquí ocurre lo mismo, pero como la siguiente línea es un comentario,
no apreciamos su omisión.

>     //Linterna
>     Objeto[LINTERNA].estado = 1;//AQUÍ ME DA EL PROBLEMA
>     strcpy(Objeto[LINTERNA].descripcion1, " Una linterna reposa sobre el centro, arrojando una tenue luz. Deben de estar a punto de acabarsele las pilas. Parece habersele caido a algun explorador.");
>     strcpy(Objeto[LINTERNA].descripcion2, " ");
>     Objeto[LINTERNA].zona = 5;
>     Objeto[LINTERNA].lotengo = false;
>
> .......................................
>
> Como el problema ya me lo dá ahí, no sigo poniendo código. Lo más curioso es el problema que dá:
>
> In function: int main(int,char**)
>             'LINTERNA' undeclared (first use this function)
>
> ¡Dice que no declaré LINTERNA cuando lo hice antes! ¡Y está bien escrito en ambos casos! ¿A alguien se le ocurre qué puede pasar? Cosas como estas son las que no entiendo... puedo tener mil errores en el código, pero esto.... no lo esperaba. Alguna idea??
>

Sí. Estos tipos de errores nos hacen pensar que no estamos hechos para
programar :(  Me temo que a todos nos ha ocurrido algo parecido: se
nos olvida poner o quitar un punto y coma; con un comentario funciona,
pero si lo quitamos, obtenemos errores :(  etcétera, etcétera.


Espero haber aclarado la inquietud.

Steven




Más información sobre la lista de distribución Cconclase