烂好人:一道题就是不知道为什么谁能告诉我

来源:百度文库 编辑:高考问答 时间:2024/04/29 02:55:08
(35) 有以下程序
#define P 3
#define F(int x) { return (P*x*x);}
main()
{
printf("%d\n",F(3+5));
}
程序运行后的输出结果是
A)192 B)29 C)25 D)编译出错
为什么是D能讲下为什么吗?

宏定义错误!更正:
#define OUT(x) F(int x) {return(P*x*x);}其中,OUT(x)相当于函数F(int x)的别名。所以在语句:
printf(\"%d\\n\",OUT(x))中OUT(x)相当于调用函数