【发布时间】:2021-04-10 08:42:33
【问题描述】:
我已经定义了这些结构。
struct http_req {
struct http_req_line rl;
}
struct http_req_line {
enum method {
OPTIONS,
GET,
HEAD,
POST,
PUT,
DELETE,
TRACE,
CONNECT
} method;
enum uri_type {
ASTERISK,
ABSOLUTEURI,
ABS_PATH,
AUTHORITY
} uri_type;
union req_uri {
char asterisk[1];
char absoluteURI[256];
char abs_path[256];
char authority[256];
} req_uri;
char http_ver[16];
};
当我编译包含这个头文件的文件时(它自己编译得很好),gcc 给了我这个
request_types.h:2:23: error: field ‘rl’ has incomplete type
struct http_req_line rl;
但是将标题的第二行更改为
struct http_req_line *rl;
摆脱了这个错误。是什么导致了这个错误,并且将该成员更改为指针真的可以解决问题,还是只是将其隐藏在编译器中?
【问题讨论】:
-
欢迎来到 SO。您是否尝试过在使用它之前声明结构?
标签: c gcc data-structures struct