以下结构的正确顺序是什么?它的投掷场有一个不完整的类型错误。
#include <stdlib.h>
struct nl_msg
{
int nm_protocol;
int nm_flags;
struct ucred nm_creds;
struct nlmsghdr * nm_nlh;
size_t nm_size;
int nm_refcnt;
};
struct nl_msg;
struct nl_tree;
struct ucred;
int main()
{
return 0;
}
答案 0 :(得分:3)
答案 1 :(得分:1)
您的struct包含一个struct ucred
类型的字段,该字段尚未在任何地方定义。
您需要提供该类型的定义。
答案 2 :(得分:1)
您的结构nl_msg
中的一个字段:
struct ucred nm_creds;
具有未定义的数据类型;你没有在任何地方定义ucred
的结构。您需要在代码中的某处定义结构ucred
。这就是你得到错误的原因:
字段的类型错误不完整。
如果您指的是socket.h
文件,则需要将头文件添加到定义此结构的代码中:
#include <sys/socket.h>
编辑:您还需要定义_GNU_SOURCE
宏。