在我的.h
文件中,我有:
#include <linux/list.h>
struct myNode
{
struct list_head list;
int myID;
int myBadge;
};
extern struct myNode firstNode;
对于.c
文件中的define firstNode 变量,我试过这个:
#include "test.h"
INIT_LIST_HEAD(&firstNode.list);
但是当我编译时,我收到错误:
expected declaration specifiers '...' before '&' token INIT_LIST_HEAD(&firstNode.list);
我不太熟悉错误的实际含义(对不起,我对C不熟悉),所以我不确定为什么/这意味着什么。
答案 0 :(得分:0)
如评论中所述,在全局范围(即,在任何函数体外),可执行代码是fobidden;这里只能使用声明和定义。
对于定义firstNode
全局变量和初始化列表,请使用LIST_HEAD_INIT
宏:
#include "test.h"
struct myNode firstNode =
{
.list = LIST_HEAD_INIT(list);
}