大红红蝴蝶公主 发表于 2020-10-4 15:37:00

关于第四节课的课后题

6. 如果有符号常量定义如下:
#define F(n) 2*n


那么请问代码中 F(3+2) 的值等于多少?

答:F(3+2) == 2*3+2 == 8,注意,宏定义是在程序编译时先进行的预处理,做法是直接将标识符替换为常量,并不会进行相关运算。因此,直接将 F(3+2) 替换为 2*3+2。
有没有大佬能帮忙解答一下这是什么意思啊

巴巴鲁 发表于 2020-10-4 17:02:55

define只会进行机械的替换,n为3+2,就替换为这个

风过无痕1989 发表于 2020-10-5 06:13:09

定义了 define F(n)2*n,那么在你的程序中,凡是出现f(n) ,在预处理时,编译器自动将 f(n) 用 2 * n 置换

小破竹林 发表于 2020-10-5 09:16:48

宏定义是暴力展开,也就是直接把2*n中的n换成3+2,就变成2*3+2了
页: [1]
查看完整版本: 关于第四节课的课后题