#include<stdio.h>
#include<conio.h>
#define PROD(x) (x*x)
void main()
{
clrscr();
int p=3,k;
k=PROD(p+1); //here i think value 3+1=4 would be passed to macro
printf("\n%d",k);
getch();
}
En mi opinión, la salida debe ser 16
, pero obtengo 7
.La salida del programa C es confusa
¿Alguien puede decirme por qué?
Ejemplo de libro escolar donde las macros C salen mal :) Use las funciones en su lugar. –
¿No es esta la * primera * cosa que advierten en cualquier libro de programación de C? Lo que sea que uses, estoy seguro de que puedes encontrar uno mejor. –
Urgh, a 'void main()' ... –