我正在尝试解决两个与预处理器相关的问题,但在这两个程序中,我得到了一些结果,我无法弄清楚如何得到这些结果。以下是我的程序:
#include<stdio.h>
#define SQUARE(x) x*x
int main()
{
float s=10,u=30 ,t=2,a;
a=2*(s-u*t)/SQUARE(t);
printf("Result:%f\n",a);
return 0;
}
根据我的理解,这个程序的输出应该是
-25.000
,但我得到的是-100.000
。第二个程序如下:
#define FUN(i,j) i##j
int main()
{
int val1 = 10;
int val12 = 20;
clrscr();
printf("%d\n",FUN(val1,2));
getch();
}
输出应该是
102
,但我得到的是 20
;
为什么会这样?