【发布时间】:2019-12-10 01:44:26
【问题描述】:
我正在尝试制作一个简单的菜单。为此,我想使用一个结构体,它是 Menu 并包含菜单项的结构体数组。
主菜单 - 节目 - 设置
菜单项包含一些进一步的信息,例如回调。
struct menu_t {
char* text;
const uint32_t num;
const struct menuitem_t *contents[MAX_MENU_CONTENTS];
};
struct menuitem_t {
char* text;
uint8_t type;
void (*callback)(void);
}
static const struct menu_t mainMenu[] = {
.name = "Main Menu",
.num = 3,
.contents = {
{
.text = "Programms",
.type = MENU_SUB,
.callback = 0,
},
{
.text = "Settings",
.type = MENU_SUB,
.callback = 0,
}
}
};
但我总是得到错误
在“const menuitem_t*”类型的标量初始化器周围大括号
【问题讨论】:
-
contents是一个指针数组。你确定要那个吗? -
contents是指向menuitem_t的指针数组,而不是menuitem_ts 的数组。 -
没有指针数组给我一个错误,但现在它似乎编译没有任何错误。谢谢
-
这看起来更像 C 而不是 C++——尤其是因为指定的初始化程序...
标签: c++ arrays struct initialization list-initialization