我正在阅读一些用于编译它们的 .cpp 文件,并有一个 mex 文件可在 MATLAB 中用于 Level-2 S-Function。
我想知道这个指令在实践中的用途是什么:
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
谢谢你的帮助。
我正在阅读一些用于编译它们的 .cpp 文件,并有一个 mex 文件可在 MATLAB 中用于 Level-2 S-Function。
我想知道这个指令在实践中的用途是什么:
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
谢谢你的帮助。
例如,它在诸如asserts之类的宏中很有用。如果断言失败,您可能不仅想知道失败的事情,还想知道失败的事情。然后,您可以创建一个关于实际不成立的条件的字符串。然后,您可以使用它向控制台打印错误消息或将其用作异常对象中的描述。
编辑:如果您想知道为什么有两个宏在做同样的事情,一个只是指另一个,您可以在Piotr S. 在评论中提到的问题中找到答案。