程序输出疑问

[复制链接]
1485|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

粉丝
快速回复 在线客服 返回列表 返回顶部