搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 解决一道题
标题:
解决一道题
只看楼主
xzx1002002
等 级:
论坛游民
帖 子:68
专家分:27
注 册:2006-3-7
楼主
问题点数:0 回复次数:7
解决一道题
#define abc(x) #x #x #x
int x=100;
abc(x)=?
2006-03-08 19:45
wanglff
等 级:
新手上路
威 望:
5
帖 子:375
专家分:0
注 册:2005-12-21
第
2
楼
得分:0
#x #x #x//不晓得你这个#x是代表什么意思,要是随便代表一个表达式的话可以的到下面的结果:
abc(x)= #100 #100 #100
自强不息:)
2006-03-08 20:20
olivezhang
等 级:
新手上路
帖 子:223
专家分:0
注 册:2005-9-14
第
3
楼
得分:0
#在这里是作为#号操作符,
#define abc(x) #x 这个宏定义的意思是:将x转换成字符串。
#define abc(x) #x #x #x
int x = 100;
则abc(x)的值就是:xxx
例1:
#define out(x) (cout << #x)
int main()
{
out(abcde f g);//屏幕将输出 abcde f g
return 0;
}
例2:
#define tostr(x) #x
int main()
{
char *str = tostr(abcde f g);
cout << str << endl;//屏幕将输出 abcde f g
return 0;
}
谷底深深行 ,峰顶漫漫步......@_@
2006-03-09 09:41
wanglff
等 级:
新手上路
威 望:
5
帖 子:375
专家分:0
注 册:2005-12-21
第
4
楼
得分:0
受教了
自强不息:)
2006-03-09 11:53
xzx1002002
等 级:
论坛游民
帖 子:68
专家分:27
注 册:2006-3-7
第
5
楼
得分:0
厉害,我明白了。
但还有一点,
int x=100;
这个是不是要代入?
那结果是不是100100100呢?
请指教下,谢了。
2006-03-09 16:36
olivezhang
等 级:
新手上路
帖 子:223
专家分:0
注 册:2005-9-14
第
6
楼
得分:0
不是这样的,如下面的例2, tostr()宏直接就将其参数转化为字符串了。
如:
int a = 0;
cout << tostr(a) << endl;
说明:
1。屏幕将输出a,与int a = 0;这一句没有关系.所以并非输出0。
2。cout << tostr(a) << endl;相当于cout << "a" << endl;
例2:
#define tostr(x) #x
int main()
{
char *str = tostr(abcde f g);
cout << str << endl;//屏幕将输出 abcde f g
return 0;
}
谷底深深行 ,峰顶漫漫步......@_@
2006-03-09 17:11
giant
等 级:
新手上路
帖 子:180
专家分:0
注 册:2005-12-11
第
7
楼
得分:0
呵呵,有收获!
2006-03-09 17:52
DarkHero
等 级:
新手上路
威 望:
2
帖 子:191
专家分:0
注 册:2006-1-14
第
8
楼
得分:0
我都定义宏
#define PRT(var) cout<<#var<<" : "<<var
用来调试程序的,很方便
for( ; me.alive() ; ) { 淡泊名利,志存高远 } //Forever
2006-03-09 20:20
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-49189-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.094315 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved