社区
C语言
帖子详情
#define的神秘用法
Promi
2008-12-29 03:31:40
#define f(a,b) a##b
#define d(a) #a
#define s(a) d(a)
void main( void )
{
puts(d(f(a,b)));
puts(s(f(a,b)));
}
输出结果:
f(a,b)
ab
...全文
963
75
打赏
收藏
#define的神秘用法
#define f(a,b) a##b #define d(a) #a #define s(a) d(a) void main( void ) { puts(d(f(a,b))); puts(s(f(a,b))); } 输出结果: f(a,b) ab
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
75 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
autotyx
2009-01-13
打赏
举报
回复
需要指出,不是编译器,而是预处理器,
用户 昵称
2009-01-13
打赏
举报
回复
嗯。
悠悠长风
2009-01-12
打赏
举报
回复
没什么神秘的啊
星羽
2009-01-12
打赏
举报
回复
zhangxichao
2009-01-12
打赏
举报
回复
学下
thinkboy234
2009-01-12
打赏
举报
回复
up 展开后理解很简单了
Sevenlight_x
2009-01-12
打赏
举报
回复
学习了
shilei_815
2009-01-12
打赏
举报
回复
[Quote=引用 6 楼 hearoequal 的回复:]
#,##
# 和 ## 操作符是和#define宏使用的. 使用# 使在#后的首个参数返回为一个带引号的字符串. 例如, 命令
#define to_string( s ) # s
将会使编译器把以下命令
cout < < to_string( Hello World! ) < < endl;
理解为
cout < < "Hello World!" < < endl;
使用##连结##前后的内容. 例如, 命令
#define concatenate( x, y ) x ## y
...
int xy = 10;
...
将会使编译器把
cout < < concatenate( x, y ) < < endl;
解释为
cout < < xy < < endl;
理所当然,将会在标准输出处显示'10'.
[/Quote]
UP 学习!
brookmill
2009-01-12
打赏
举报
回复
mark
stealfire
2009-01-12
打赏
举报
回复
相当汗啊,学习了、
liurenjie2008
2009-01-12
打赏
举报
回复
嗯~明白了~十分感谢~
qqxiaoyatou
2009-01-12
打赏
举报
回复
我想知道这个[Quote=引用 33 楼 hemoparrot 的回复:]
再涨个见识,以前看到的一个兄弟的email,太牛了。内容如下:
########################################################################
echo -e ‘#define cat(c,d) c##.d \n #define mb(a,b) a##@b \n mb(cat(xiyou,wangcong),cat(gmail,com))’ | gcc -E -xc - 2>/dev/null |tail -n 1
########################################################################
有兴趣的可以到shell下运行。
摘录自:http://w…
[/Quote]
melody1128
2009-01-12
打赏
举报
回复
。。。
chenyu2202863
2009-01-11
打赏
举报
回复
浪费脑细胞~~
arong1234
2009-01-11
打赏
举报
回复
简单的说,宏不支持嵌套宏,宏参数中的表达式不会被展开f(a(b))中,a(b)会被当作整体,而不会对a(b)当作宏进行计算
[Quote=引用 5 楼 da_ke 的回复:]
不明白,再解释一下好吗?
[/Quote]
yyjjack123
2009-01-11
打赏
举报
回复
受教了,
hua_zhixing_
2009-01-11
打赏
举报
回复
初学者,看了有点瞢。
lwzlemon
2009-01-11
打赏
举报
回复
学习!
phonlee
2009-01-11
打赏
举报
回复
micro/macro
其实微软本质上是macro_soft
china_west
2009-01-11
打赏
举报
回复
预编译啊
加载更多回复(55)
thinking in c
这套资料可以使你很好的学习C,并为学习java和c++打下良好的基础,很不错,学习下吧
C的奥秘-书籍-英文原版
这是一本详细描写C语言的书籍,英文原版书籍,pdf版,详细介绍C的奥秘。
c语言期末考试复习资料
c语言期末考试复习资料 有ppt 和应该注意的地方,例题
汇编语言程序设计第4章PPT学习教案.pptx
汇编语言程序设计第4章PPT学习教案.pptx
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章