将c宏重写为函数等

我有一个宏,我使用了很多,受到另一个问题的启发:
#define to_string(x) dynamic_cast<ostringstream &> (( ostringstream() << setprecision(4) << dec << x )).str()

这个非常方便,例如在使用字符串输入的函数时:

some_function(to_string("The int is " << my_int));

但是我被告知在C语言中使用宏是不好的做法,事实上我在使用上述工作在不同的编译器上时遇到了问题.有没有办法把它写成另一种结构,例如一个功能,它将具有相同的多功能性?

解决方法

在C 11及更高版本中,我们现在拥有 std::to_string.我们可以使用它将数据转换为字符串,并将其附加到您想要的任何内容中.
some_function("The int is " + std::to_string(my_int));

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...