代码 #include <stdio.h> #define TEST_DEFINE 16 #define _VNAME(name) (#name) #define VNAME(name) (_VNAME(name)) // 加一层中间层,先把外面的转换好了再到里面转换成字符串 int main(void) { printf("%s \n", VNAME(TEST_DEFINE)); return 0; } 效果