【发布时间】:2026-01-21 19:05:01
【问题描述】:
假设你想生成一个匹配的标识符和字符串列表
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 不允许您将参数放在字符串中?
【问题讨论】:
标签: c c-preprocessor preprocessor-directive