标题:预处理函数的使用
只看楼主
stone_yang
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2010-10-16
结帖率:100%
已结贴  问题点数:20 回复次数:3 
预处理函数的使用
     #define MAX(a,b) ((a)>(b)?(a):(b))
    int a=1,b=0;
    MAX(a++,b); //a被增值2次
    MAX(a++,b+10); //a被增值1次
为什么,在第一个宏替换后,a被增值两次,变成a=3?
搜索更多相关主题的帖子: 函数 预处理 
2010-10-20 15:50
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
得分:20 
((a++)>(b)?(a++):(b));
((a++)>(b+10)?(a++):(b+10));
a++ a++ 肯定是3

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-20 15:54
stone_yang
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2010-10-16
得分:0 
回复 2楼 vandychan
多谢!明白了
2010-10-20 15:58
stone_yang
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2010-10-16
得分:0 
如果参数a 和b 类型不匹配,系统不报错,那么它处理的结果应该是什么?? ;例如 swap(3,"hello")
2010-10-20 16:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-323442-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.487984 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved