#include <stdio.h>
#define QUOTE(str) #str
#define EXPAND_AND_QUOTE(str) QUOTE(str)
#define TEST one-of-a-linux
int main() {
printf(EXPAND_AND_QUOTE(TEST)"\n");
}
我得到:
一一
而不是
一个Linux
请注意,“linux”变为“1”-即数字1
最佳答案
显然在某处有#define linux 1
(或-Dlinux=1
)。
关于c - 为什么这个C字符串化宏在扩展时会损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8837469/