我正在尝试解决两个与预处理器相关的问题,但是在这两个程序中我都得到了我无法弄清楚的结果。下面是我的程序:
#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
;为什么会这样?