作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力制作一个像这样使用的宏:
BYTE_AS_STRING(0A);
扩展为:
“\x0A”
这可能吗?
到目前为止我已经尝试过:
#define STEP2(a) #a
#define BYTE_AS_STRING(byte) STEP2(\x##byte)
和:
#define STEP3(a) #a
#define STEP2(a, b) STEP3(\##a##b)
#define BYTE_AS_STRING(byte) STEP2(x, byte)
没有成功。有什么想法吗?
谢谢。
最佳答案
我想说我同意 Joachim Pileborg 的观点。
无论如何,这就是您所需要的。您应该对 cpp
说将您的宏参数视为字符串。
#include <stdio.h>
#define BYTE_AS_STRING(x) "\\x" #x
int main(void) {
printf("print this : %s\n", BYTE_AS_STRING(0A));
return 0;
}
关于c - C 宏中的标记粘贴 (##) 反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16056472/
我是一名优秀的程序员,十分优秀!