首页 > 解决方案 > 在 C 中是否有类似 C# 的名称用于定义指令?

问题描述

我有经典

    #define SOME_CONSTANT value

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

编辑

我必须解析一个文件来寻找一些关键字:

#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")它应该返回 1

标签: cc-preprocessornameof

解决方案


由于没有其他人发布答案...

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

#define NAMEOF(x) (#x)

推荐阅读