Con parámetros macro – no podemos utilizar el espacio después del nombre de macro

En las macros parametrizado, no podemos utilizar el espacio después del nombre de macro while la definición de la macro.

Considere esta declaración

#define SQUARE (N) (N*N)

En esta declaración, vamos a conseguir cuadrada de un número, pero esta declaración producirá un error porque no hay un espacio entre la plaza y (N), que no está permitido while definir una macro parametrizada (función como macro).

Programa con definición de macro incorrecta (con el espacio entre la plaza y (N))

#include <stdio.h>
#define SQUARE (N) (N*N)
int main()
{
printf("%dn",SQUARE(10));
return 0;
}

salida

    main.c:3:17: error: 'N' undeclared (first use in this function) 
#define SQUARE (N) (N*N)
^
main.c:7:16: note: in expansion of macro 'SQUARE'
printf("%dn",SQUARE(10));
^
main.c:3:17: note: each undeclared identifier is reported
only once for each function it appears in
#define SQUARE (N) (N*N)
^
main.c:7:16: note: in expansion of macro 'SQUARE'
printf("%dn",SQUARE(10));

Programa con definición de macro correcto (sin espacio entre cuadrado y (N))

#include <stdio.h>
#define SQUARE(N) (N*N)
int main()
{
printf("%dn",SQUARE(10));
return 0;
}

de salida

    100


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *