八块腹肌的胖子 发表于 2020-4-1 11:36:07

C语言S1E5一道作业题求助

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

答:F(3+2) == 2*3+2 == 8,注意,宏定义是在程序编译时先进行的预处理,做法是直接将标识符替换为常量,并不会进行相关运算。因此,直接将 F(3+2) 替换为 2*3+2。


求助为什么答案不是8+2==10?

qiuyouzhi 发表于 2020-4-1 11:39:00

宏定义就是机械替换,直接把2*放进去,也就是2*3+2

sunrise085 发表于 2020-4-1 12:30:58

为什么会是8+2呢?

2*3是2乘3,不是2的3次方
页: [1]
查看完整版本: C语言S1E5一道作业题求助