.cpp文件中的STRINGIFY

时间:2014-11-20 11:05:32

标签: c++ matlab mex s-function

我正在阅读一些用于编译它们的.cpp文件,并有一个mex文件在MATLAB中用于Level-2 S函数。

我想知道这条指令在实践中的用途是什么:

#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x) 

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

例如,它在像asserts这样的宏中很有用。如果断言失败,您可能不仅想知道 某些内容失败,而且 失败了。然后,您可以创建一个关于实际上没有持有的条件的字符串。然后,您可以使用它将错误消息打印到控制台,或将其用作异常对象中的描述。

编辑:如果你想知道为什么有两个宏做同样的事情,一个只是引用另一个,你可以在question referred to by Piotr S. in the comments中找到答案。