sam*_*moz 3 c string replace c-preprocessor
我有一个大约100个#defines的文件,从1-100开始,每个文件都有一个唯一的字符串值.
现在我正在尝试打印这个值,但是我想要打印#define是什么,而不是值.例如:
#define FIRST_VALUE 1
var = FIRST_VALUE;
printf("%s", var);
Run Code Online (Sandbox Code Playgroud)
我希望printf打印FIRST_VALUE,而不是1.
有没有办法在C中这样做?或者我必须在switch语句中写出100多个case块?
Dav*_*nds 12
您可以使用字符串化来实现您的目标:
#define FIRST_MACRO
#define MACRO_TO_STRING(x) #x
#include <stdio.h>
main() {
printf("%s\n", MACRO_TO_STRING(FIRST_MACRO));
}
Run Code Online (Sandbox Code Playgroud)
该程序将输出:
FIRST_MACRO