如何优雅简便的将任意东西(如数字字面量之类)转换为字符串字面值?

C、C++和Java语言
回复
科学之子
帖子: 2260
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 842 次
接收感谢: 30 次

如何优雅简便的将任意东西(如数字字面量之类)转换为字符串字面值?

#1

帖子 科学之子 » 2016-07-13 5:58

代码: 全选

//获取宏的数字
#define debug_line_unsigned(line_v_unsigned)#line_v_unsigned
//为调试目的设置的宏
#define debug_line(line_v)debug_line_unsigned(line_v)
但这么写好像很笨的样子,有没有更巧妙一些的方法?
头像
astolia
论坛版主
帖子: 3282
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 550 次

Re: 如何优雅简便的将任意东西(如数字字面量之类)转换为字符串字面值?

#2

帖子 astolia » 2016-07-13 15:28

一股浓浓的知乎臭扑面而来。
觉得笨不是因为宏名又臭又长么?看看官方文档怎么取名的
https://gcc.gnu.org/onlinedocs/cpp/Stringification.html
这些用户感谢了作者 astolia 于这个帖子:
科学之子 (2016-07-13 22:29)
评价: 3.7%
科学之子
帖子: 2260
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 842 次
接收感谢: 30 次

Re: 如何优雅简便的将任意东西(如数字字面量之类)转换为字符串字面值?

#3

帖子 科学之子 » 2016-07-13 22:37

astolia 写了:一股浓浓的知乎臭扑面而来。
觉得笨不是因为宏名又臭又长么?看看官方文档怎么取名的
https://gcc.gnu.org/onlinedocs/cpp/Stringification.html
感觉因为要定义两个宏...
所以觉得"笨",感觉就好像可以写成一个函数的代码却硬是要COPY函数体
回复

回到 “C/C++/Java”