在 C# 中是否有类似 nameof 的定义指令?

Is there something like nameof of C# in C for define directive?

我有经典

    #define SOME_CONSTANT value

有没有办法像 C# nameof(field) 那样获取字符串 "SOME_CONSTANT"

编辑

我必须解析文件以查找某些关键字:

#define KEY_A 1
#define KEY_B 2

int foo(char *s)
{
    if (strcmp(s, nameof(KEY_A)) == 0)
        return KEY_A;
    else if (strcmp(s, nameof(KEY_B)) == 0)
        return KEY_B;
    else
        return -1;
}

如果我调用 foo("KEY_A") 它应该 return 1

因为没有其他人发布答案...

@palmis,我认为这就是您正在寻找的解决方案。

#define NAMEOF(x) (#x)