打印

程序输出疑问

[复制链接]
1007|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xsgy123|  楼主 | 2012-7-10 23:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个程序的两个输出结果为什么不一样?
#include <stdio.h>
#define f(a,b) a##b
#define g(a)   #a
#define h(a) g(a)
int main()
{
    printf(
"%s\n",h(f(1,2)));
    printf(
"%s\n",g(f(1,2)));
   
return
0;
}

相关帖子

沙发
dfsa| | 2012-7-10 23:55 | 只看该作者
int main()
{
    printf("%s\n","12");
    printf("%s\n","f(1,2)");
    return 0;
}
在预处理阶段,被编译器处理后的源码是这个。

使用特权

评论回复
板凳
txcy| | 2012-7-10 23:57 | 只看该作者
h(f(1,2))=>g(a##b)=>"12"
g(f(1,2))=>"f(1,2)"

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

229

主题

2603

帖子

1

粉丝