我正在使用linux / list.h来处理列表,但是我无法开始使用。
我根据一些指南的建议尝试了不同的组合,但到目前为止还没有任何工作。以下是我认为最接近初始化的尝试:
typedef struct {
int to;
struct list_head list;
int from;
} myFrame;
int main() {
LIST_HEAD(listInstance);
myFrame* foo = malloc(sizeof(*foo));
list_add(&foo->list, &listInstance);
}
这会产生警告
初始化元素在加载时不可计算
在LIST_HEAD()
然而,this似乎表明我可以。
或者,可以在编译时初始化列表
有人会介意帮助我绕过这个吗?
答案 0 :(得分:4)
你真的想这样做:
LIST_HEAD(this_is_a_list_instance);
然后你可以这样做:
struct myList *foo = malloc(sizeof(*foo));
foo->to = 3;
foo->from = 4;
list_add(&foo->list, &this_is_a_list_instance);
如果您将其命名为myObject
而不是myList
,这也可能会更加一致。