1

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

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

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

谢谢你的帮助。

4

1 回答 1

2

例如,它在诸如asserts之类的宏中很有用。如果断言失败,您可能不仅想知道失败的事情,还想知道失败的事情。然后,您可以创建一个关于实际不成立的条件的字符串。然后,您可以使用它向控制台打印错误消息或将其用作异常对象中的描述。

编辑:如果您想知道为什么有两个宏在做同样的事情,一个只是指另一个,您可以在Piotr S. 在评论中提到的问题中找到答案。

于 2014-11-20T11:10:30.737 回答