在 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)
我有经典
#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)