gpt4 book ai didi

C++:如何在函数中创建枚举?

转载 作者:行者123 更新时间:2023-11-30 01:29:33 24 4
gpt4 key购买 nike

我想通过不单独创建枚举列表来简化事情,而是沿着函数调用创建枚举,函数调用在我指向这些枚举的位置创建数据。

我试图创建#define,这会创建另一个#define,但没有成功:

int defcounter = 0;

#define make_def(enumname, somedata) \
#define enumname defcounter \
defcounter++; \
func_call(somedata); \

void createstuff(){
make_def(MY_ENUM_NAME, mydata);
make_def(MY_OTHER_ENUMNAME, mydata);
}

void dostuff(){
somefunc_call(MY_ENUM_NAME);
somefunc_call(MY_OTHER_ENUMNAME);
}

但这会在 #define enumname 处产生错误:

error C2162: expected macro formal parameter

我怎样才能让它工作?

最佳答案

在 C++ 的运行时不可能创建新类型(类、枚举、 union 等)。 C++ 的主要特性之一是它是静态类型的 - 所有类型都必须在编译时已知。

关于C++:如何在函数中创建枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772136/

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