关于第四节课的课后题
6. 如果有符号常量定义如下:#define F(n) 2*n
那么请问代码中 F(3+2) 的值等于多少?
答:F(3+2) == 2*3+2 == 8,注意,宏定义是在程序编译时先进行的预处理,做法是直接将标识符替换为常量,并不会进行相关运算。因此,直接将 F(3+2) 替换为 2*3+2。
有没有大佬能帮忙解答一下这是什么意思啊 define只会进行机械的替换,n为3+2,就替换为这个 定义了 define F(n)2*n,那么在你的程序中,凡是出现f(n) ,在预处理时,编译器自动将 f(n) 用 2 * n 置换 宏定义是暴力展开,也就是直接把2*n中的n换成3+2,就变成2*3+2了
页:
[1]