如何在C语言中使用字符串化在预处理器中执行计算

lin*_*ore 5 c c-strings stringification c-preprocessor

可能重复:
如何在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);
}
Run Code Online (Sandbox Code Playgroud)

P.P*_*.P. 4

不可以。您无法使用预处理器执行计算。它本质上是一个文本替换器。

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