在结构类型的数组中声明元素
declare element in array that is the struct type
我有这个结构:
typedef struct {
int id;
node_t * otherNodes;
} node_t;
我的节点中需要一个节点数组....
但在头文件中无法识别:它告诉我`未知类型名称'node_t'
我该如何解决这个问题?
谢谢
在此 typedef 声明中
typedef struct {
int id;
node_t * otherNodes;
} node_t;
结构定义中的名称 node_t
是一个未声明的名称。所以编译器会报错。
例如你需要这样写
typedef struct node_t {
int id;
struct node_t * otherNodes;
} node_t;
或者你可以这样写
typedef struct node_t node_t;
struct node_t {
int id;
node_t * otherNodes;
};
甚至喜欢
struct node_t typedef node_t;
struct node_t {
int id;
node_t * otherNodes;
};
我从内核代码中引用了 struct list_head
的定义:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/linux/types.h?h=v5.10.84#n178
所以我会这样写:
struct node {
int id;
struct node * otherNodes;
};
typedef struct node node_t;
我有这个结构:
typedef struct {
int id;
node_t * otherNodes;
} node_t;
我的节点中需要一个节点数组....
但在头文件中无法识别:它告诉我`未知类型名称'node_t'
我该如何解决这个问题?
谢谢
在此 typedef 声明中
typedef struct {
int id;
node_t * otherNodes;
} node_t;
结构定义中的名称 node_t
是一个未声明的名称。所以编译器会报错。
例如你需要这样写
typedef struct node_t {
int id;
struct node_t * otherNodes;
} node_t;
或者你可以这样写
typedef struct node_t node_t;
struct node_t {
int id;
node_t * otherNodes;
};
甚至喜欢
struct node_t typedef node_t;
struct node_t {
int id;
node_t * otherNodes;
};
我从内核代码中引用了 struct list_head
的定义:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/linux/types.h?h=v5.10.84#n178
所以我会这样写:
struct node {
int id;
struct node * otherNodes;
};
typedef struct node node_t;