[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: g++ compiler problem



Francisco Benavides wrote:

>
> header.hh
> ---------
>
> #define MAX_FAULTS  = 50;
> #define MAX_CALL    = 100;
>
> typedef struct {
>   .....
>   .....
>   .....
> } Auto_Calls;
>
>           int         someVariable = 0;
>           char        Fault_List[MAX_FAULTS][128];
> static    Auto_Calls  Auto_Call[MAX_CALL];
>
> static void
>    Auto_Fail_Call(         const unsigned int );
>
>
> header.hh:114: parse error before `='
> header.hh:136: parse error before `='
> program.cc: In function `void Auto_Fail_Call(unsigned int)':
> program.cc:423: `Auto_Call' undeclared (first use this function)
> program.cc:423: (Each undeclared identifier is reported only once
> program.cc:423: for each function it appears in.)
>
> Estoy usando GNU C++ 2.8 sobre Solaris/Sparc.
>
> Gracias/Francisco :)

Espero y aun te sirva pues después de 5 días llegaron algunos correos,
la custión es que la macro #define se usa asi:

#define MAX_FAULTS   50
#define MAX_CALL     100

Es tan solo un alias lo que necesitas no una asignación, acuerdate que
el preprocesador de C tan solo va a sustituir las etiquetas MAX_* por
sus valores antes de comenzar a compilar.

o si quieres el buen estilo C++ (eso dicen en los libros)

const int MAX_FAULTS = 50, MAX_CALL = 50;

que te hace un chequeo más estricto de datos.




[Hilos de Discusión] [Fecha] [Tema] [Autor]