5

可能重复:
如何在 C 中对表达式进行字符串化

我希望我能在这里找到我的问题的一些解决方案。

我想添加在 ADD1 中定义的十六进制数字,并且需要以*str字符串形式输入。

这只是一个例子,首先证明它的可能性。我实际上在头文件中做同样的事情。

#include <stdio.h>


#define XMK_STR(x)      #x
#define MK_STR(x)       XMK_STR(x)
#define ADD1 0x6000+0x10

main()
{
        char *str = "START " MK_STR(ADD1) "\n";
        printf(str);
}
4

1 回答 1

4

不,您不能使用预处理器执行计算。它本质上是一个文本替换器。

您可以使用sprintf()并将添加的结果打印到str您可以使用ADD1的 .

于 2012-10-12T07:35:53.367 回答