求助宏中的展开顺序

wuyangzu01 2014-03-14 05:47:20
#define _STR(s) #s
#define STR(s) _STR(s) // 转换宏
void main()
{
int a = 121321;
printf("%s\n", STR(a));
}
不明白为什么答应的结果还是a而不是121321??
...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2014-03-14
  • 打赏
  • 举报
回复
#define _STR(s) #s #define STR(s) _STR(s) // 转换宏 void main() { enum { a = 121321}; printf("%s\n", STR(a)); // 这个似乎是,输出121321 }
u012997273 2014-03-14
  • 打赏
  • 举报
回复
printf("%s\n", STR(121321));
图灵狗 2014-03-14
  • 打赏
  • 举报
回复
跟宏扯不上关系,想输出121321,直接用printf("%d\n",a);
引用 楼主 wuyangzu01 的回复:
#define _STR(s) #s #define STR(s) _STR(s) // 转换宏 void main() { int a = 121321; printf("%s\n", STR(a)); } 不明白为什么答应的结果还是a而不是121321??

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧