cual es el error en este codigo en el lenguaje de programacion c??

Iniciado por fedemaxrul, 18 Noviembre 2016, 00:28 AM

0 Miembros y 1 Visitante están viendo este tema.

fedemaxrul

hola, es un programa simple, al compilarlo y ejecularlo me tira estos errores.
warning statement with no effect -wunused-value-
note in expansion of macro 'MACRO'

#include <stdio.h>
#define MACRO(a,b)    for(a;a<b;a++)
int main()
{
   MACRO(0,100)
   {
       printf(".\n");
   }
   return 0;
}



Mod: Los códigos deben ir en etiquetas GeSHi

4dr14n31t0r

#1
Si sustituyes la macros por lo que vale, veras el error enseguida:
Código (cpp) [Seleccionar]
#include <stdio.h>
#define MACRO(a,b)    for(a;a<b;a++)
int main()
{
   MACRO(0,100)
   {
       printf(".\n");
   }
   return 0;
}
Si sustituyes la MACRO queda asi:
Código (cpp) [Seleccionar]
#include <stdio.h>
int main()
{
   for(0;0<100;0++)
   {
       printf(".\n");
   }
   return 0;
}


Debes tener en cuenta que la directiva de preprocesador #define sustituye tal cual lo que vale. Probablemente hayas pensado que le asigna a la variable 'a' y 'b' los valores '0' y '100', pero lo que realmente hace es sustituir tal cual esos valores a medida que se los encuentra en el codigo tal y como te he mostrado.
Obviamente no puedes usar el operador ++ con un numero. Tienes que usar una variable. De todos modos no entiendo que tiene que ver el mensaje de error que te lanza el compilador con esto.

PD: Usa las etiquetas GeSHi cuando escribas codigo.