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

标签 c c-preprocessor c-strings stringification

<分区>

Possible Duplicate:
How to stringify an expression in C

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

我想添加 ADD1 中定义的十六进制数字,需要将它们以字符串形式放入 *str 中。

This is only a example, to prove its possibility first. I am actually doing the same in a header file.

#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);
}

最佳答案

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

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

关于c - 如何在 C 中使用字符串化在预处理器中执行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854274/

相关文章:

c++ - 从父级重定向时,到 stderr 的 DLL 输出不起作用

c++ - 调试调试和发布版本之间差异的最佳实践和工具?

c - C 中是否有内置函数来检查特殊字符(如空格和制表符),就像 isdigit() 函数一样

c - C语言客户端-服务器编程中发送字符串

c++ - 用一个宏创建两个不同的代码块

c++ - 在静态初始化列表之前预处理变量

c - C 定义的值意外更改

c++ - 此断点当前不会被命中 : Dll debugging

c - 编写从文本中删除所有数字的程序

c++ - 如何检查 MFC CString 是否为空?