| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 448 人关注过本帖
标题:刚学预处理命令、可是这题目看不太懂啊
只看楼主 加入收藏
唯唯七——
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
刚学预处理命令、可是这题目看不太懂啊
定义一个带参数的宏,使两个参数的值互换并写出程序,输出两个数作为使用宏时的实参。输出交换后的两个值。

这就是题目,求大神指导这是什么意思?
2012-12-04 15:41
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:20 
程序代码:
#include <stdio.h>
#define Swap(a, b)    {a ^= b; b ^= a; a ^= b;}
int main()
{
    int x = 5, y = 6;
    printf("x = %d\ty = %d\n", x, y);
    Swap(x, y);
    printf("x = %d\ty = %d\n", x, y);
    return 0;
}


[fly]存在即是合理[/fly]
2012-12-04 15:51
唯唯七——
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-12
收藏
得分:0 
回复 2楼 azzbcc
老大,程序代码给我也没用啊。不懂,能不能解释一下?
2012-12-04 16:00
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 2楼 azzbcc
这种写法是有问题的!

授人以渔,不授人以鱼。
2012-12-04 16:03
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
a = a ^ b;
 b = a ^ b;
 a = a ^ b;
 原理:a ^ x ^ x = a;
 举例:5:110 6:111
 a = 110 ^ 111 = 001
 b = 001 ^ 111 = 110
 a = 001 ^ 110 = 111


[fly]存在即是合理[/fly]
2012-12-04 16:04
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 4楼 TonyDeng
加括号?我宏也弱额


[fly]存在即是合理[/fly]
2012-12-04 16:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
是的,要加括号,否则传进去的参数如果是复杂表达式,宏替换就会出错。
现代编程已经不提倡使用宏函数了,如果你的编译器得力,就用online函数吧,能够用C++编译器就尽量用,不必守着C编译器不放,这些好功能是可以用的。
当然,如果你要应付考试,或者面试那些变态的考官,他们非要你用这个,就没办法。

[ 本帖最后由 TonyDeng 于 2012-12-4 16:09 编辑 ]

授人以渔,不授人以鱼。
2012-12-04 16:07
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 7楼 TonyDeng
受教


[fly]存在即是合理[/fly]
2012-12-04 16:09
唯唯七——
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-12
收藏
得分:0 
回复 5楼 azzbcc
好吧,可是水平有限,有时间的话,能不能再详细一点?
2012-12-04 16:12
唯唯七——
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-12
收藏
得分:0 
回复 7楼 TonyDeng
恩恩、受教了!
2012-12-04 16:12
快速回复:刚学预处理命令、可是这题目看不太懂啊
数据加载中...
 
   



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

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