一个C语言选择题 很急

来源:百度知道 编辑:UC知道 时间:2024/06/07 16:59:05
#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 编译出错

答案是编译出错 为什么呢

宏定义#define F(int x){return (P*x*x);}有错,宏只是字符串替换,这个define不伦不类,把#define改成int就成函数定义了

#define P 3
#include <stdio.h>
int F(int x){return (P*x*x);}
void main()
{
printf("%d\n",F(3+5));
}
结果192

如果用宏:

#define P 3
#define F(x) (P*x*x)
#include <stdio.h>
void main()
{
printf("%d\n",F(3+5));
}
结果29

#define P 3
#define F(x) (P*x*x)
#include <stdio.h>
void main()
{
printf("%d\n",F(3+5));
}
结果29
#define P 3
#define F(x) (P*x*x)
#include <stdio.h>
void main()
{
printf("%d\n",F((3+5)));
}
结果 192

因为计算机不知道P是从哪里来的饿
你没有定义
而且参数里没有传输

这个好像是出错了··F(3+5)这里可能出现了问题,因为C语言,和数学才不多·,你这个没有运算的·所以可能就是这里的问题