00问答网
所有问题
#define SUB(a) (a)-(a) main() { int a=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
求解题的过程和答案
举报该问题
推荐答案 2011-10-29
d=SUB(A+B)*C //a=a+b
d=(a+b)-(a+b)*c //没有括号把前面括起来,因为这是define定义的宏的特点
d=5-5*5=-20
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/rrjeDI0jI.html
其他回答
第1个回答 2011-10-29
最关键的是你的宏定义:
#define SUB(a) (a)-(a)
在编译时这一句:
d=SUB(a+b)*c;
实际被展开成了这样:
d=(a+b)-(a+b)*c;
如果你想要得到你预期的结果,那你需要修改宏,把结果也用括号包起来:
#define SUB(a) ((a)-(a))
相似回答
#define
SUB(a)
(a)-(a)
main()
{
int
a=2,b=3,c=5,d;
答:
d=SUB(A+B)*C //a=a+b d=(a+b)-(a+b)*c //没有括号把前面括起来,因为这是
define
定义的宏的特点 d=5-5*5=-20
c语言
#define
SUB(a)
(a)-(a)
main()
{
inta=2,b=3,c=
答:
首先将
SUB
的参数a+b代入宏替换表达式相应部分 SUB(a+b) 等于 (a+b)-(a+b)SUB(a+b)*c中宏替换后表达式为(a+b)-(a+b)*c 先计算(a+b)*c为25然后(a+b)-25结果是-20
#include<stdio.h>
#define
SUB(a)
(a)-(a)
main(
答:
SUB
是带参数的宏,d=SUB(a+b)*c相当于d=(a+b)-(a+b)*c,代入a,b,c的值,结果d等于-20。
二级C语言
答:
define
SUB(a)
(a)-(a)这是一个宏,意思是在后面程序中,凡是出现 SUB(a) 的地方,一律替换为
(a)-(a),
注意,这里的“a”可以代表一个值,或者是字符,也可以是一个表达式。在程序中
,d
=
SUB(a+b)*c 这里,在程序预处理后(预处理是编译器的工作,无需程序员完成),SUB(a+b)将会...
大家正在搜
define mian main
define与typedef区别
c语言define和int
define n 5
define和int
int和define区别
define M 5
define N 5
define n 10
相关问题
#include<stdio.h>#define SUB(a...
#include<stdio.h> #define SUB(...
#define SUB(a) (a)-(a)这是什么意思?还...
#define P 3 #define S(a) P*a*a...
#define a #define a 1 两者什么区别 书...
C语言选择题,SUB(a) (a)-(a),求详解
#define SUB(x,y)(x)*y #include...
#define f(x) x*x main() {int a...