#define 有关运算
本帖最后由 YjingA 于 2015-12-9 10:55 编辑k为什么不是100,
怎么理解
#define F(n)2*n
F(4+2)==10
为什么
求解啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,谢谢{:5_100:}
因为 2*4+2 =10 宏就是替换 他没有你想像中那么机智 所以 就是 2*4+2{:9_240:} 你可以打个括号。用define定义一个式子或者一组操作的时候,有一些小技巧,楼主可以搜一下,了解下。
#define F(n) (2 * n)
#define MIN(x, y) ((x) < (y) ? (x) : (y)) 故乡的风 发表于 2015-12-8 19:52
你可以打个括号。用define定义一个式子或者一组操作的时候,有一些小技巧,楼主可以搜一下,了解下。
(2*n)这个是不是应该改成2*(n)啊? 最外面打括号
就拿你写的#define F(n)2*n这个来说
F(4+2)==10是因为预处理器只进行文本替换工作所以变成了2*4+2就是10
这样写#define F(n)(2*(n))结果是2*(4+2)=12了
这是个技巧也是个易错点 小人 发表于 2015-12-8 19:26
因为 2*4+2 =10 宏就是替换 他没有你想像中那么机智 所以 就是 2*4+2
谢谢 故乡的风 发表于 2015-12-8 19:52
你可以打个括号。用define定义一个式子或者一组操作的时候,有一些小技巧,楼主可以搜一下,了解下。
谢谢{:5_108:} counting_stars 发表于 2015-12-8 23:15
最外面打括号
就拿你写的#define F(n)2*n这个来说
F(4+2)==10是因为预处理器只进行文本替换工作所以 ...
谢谢 不错,拿来做课后作业题~~
页:
[1]