gpt4 book ai didi

c - 制作既是 C 标识符又是字符串的东西?

转载 作者:太空狗 更新时间:2023-10-29 16:35:13 24 4
gpt4 key购买 nike

假设你想生成一个匹配的标识符和字符串列表

enum
{
NAME_ONE,
NAME_TWO,
NAME_THREE
};

myFunction(NAME_ONE, "NAME_ONE");
myFunction(NAME_TWO, "NAME_TWO");
myFunction(NAME_THREE, "NAME_THREE");

..无需重复,无需自动生成代码,使用 C/C++ 宏

初步猜测:

你可以添加一个#include 文件包含

myDefine(NAME_ONE)
myDefine(NAME_TWO)
myDefine(NAME_THREE)

然后像这样使用它两次:

#define myDefine(a) a,
enum {
#include "definitions"
}
#undef myDefine

#define myDefine(a) myFunc(a, "a");
#include "definitions"
#undef myDefine

但是#define 不允许您将参数放在字符串中?

最佳答案

对于您的第二个#define,您需要使用# 预处理器运算符,如下所示:

#define myDefine(a) myFunc(a, #a);

将参数转换为字符串。

关于c - 制作既是 C 标识符又是字符串的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/126277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com