Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fedemaxrul en 18 Noviembre 2016, 00:28 am



Título: cual es el error en este codigo en el lenguaje de programacion c??
Publicado por: fedemaxrul en 18 Noviembre 2016, 00:28 am
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'

Código
  1. #include <stdio.h>
  2. #define MACRO(a,b)    for(a;a<b;a++)
  3. int main()
  4. {
  5.    MACRO(0,100)
  6.    {
  7.        printf(".\n");
  8.    }
  9.    return 0;
  10. }
  11.  


Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: cual es el error en este codigo en el lenguaje de programacion c??
Publicado por: 4dr14n31t0r en 18 Noviembre 2016, 00:38 am
Si sustituyes la macros por lo que vale, veras el error enseguida:
Código
  1. #include <stdio.h>
  2. #define MACRO(a,b)    for(a;a<b;a++)
  3. int main()
  4. {
  5.    MACRO(0,100)
  6.    {
  7.        printf(".\n");
  8.    }
  9.    return 0;
  10. }
Si sustituyes la MACRO queda asi:
Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    for(0;0<100;0++)
  5.    {
  6.        printf(".\n");
  7.    }
  8.    return 0;
  9. }

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.