说你想生成标识符和字符串制作C标识符和字符串?
enum
{
NAME_ONE,
NAME_TWO,
NAME_THREE
};
myFunction(NAME_ONE, "NAME_ONE");
myFunction(NAME_TWO, "NAME_TWO");
myFunction(NAME_THREE, "NAME_THREE");
..无重复自己,而不会自动生成代码,使用C/C++宏
初始猜测的匹配名单:
您可以添加含
myDefine(NAME_ONE)
myDefine(NAME_TWO)
myDefine(NAME_THREE)
然后使用#include文件它有两次像:
#define myDefine(a) a,
enum {
#include "definitions"
}
#undef myDefine
#define myDefine(a) myFunc(a, "a");
#include "definitions"
#undef myDefine
但#define不让你把参数放入一个字符串?
很高兴看到别人正在使用宏名传递。我发现这种技术非常强大和有用。无耻的插件:http://stackoverflow.com/questions/147267/easy-way-to-use-variables-of-enum-types-as-string-in-c#202511 – Suma 2008-10-14 19:41:27