C语言 宏定义的题目 不知道是为什么?? 请好心人帮忙了~!~真诚感谢!

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:00:13
16、设有以下宏定义:
#define WIDTH 80
#define LENGTH WIDTH+40
执行赋值语句:v=LENGTH*2;(v为int型变量)后,v的值是【 160】。
17、设有以下宏定义:
#define WIDTH 80
#define LENGTH (WIDTH+40)
执行赋值语句:n=LENGTH*2;(n为int型变量)后,n的值是【 240】。

16.
v=LENGTH*2等价于v=80+40*2
17.
v=LENGTH*2等价于v=(80+40)*2
明白了吧

宏定义一定要注意有括号和没有括号的区别

#define WIDTH 80
以后
#define LENGTH WIDTH+40
编译器就会将80代入进行计算,所以也就等于:
#define LENGTH 80+40

v=LENGTH*2=80+40*2=160(由于没有括号,所以编译器就会将80+40代入,然后就根据运算符的优先级进行计算了)

兄弟 你应该还没看懂宏。 宏的意思是在你程序实行时候才吧数值代进去

v=LENGTH*2《=》WIDTH+40 *2=160
第二个是(WIDTH+40) *2=240