微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:预期的声明说明符或’list_node’之前的’…’

我有一个catalog.h文件
typedef struct node* list_node;
struct node
{
    operationdesc op_ptr;
    list_node next;
};

一个parser.h

#include "catalog.h"

int parse_query(char *input,list_node operation_list);

两个标题都有#ifndef,#define,#endif.
编译器给了我这个错误:预期的声明说明符或parse_query行上’list_node’之前的’…’.
怎么了?
我试着把typedef放在parser.h中,没关系.当typedef在catalog.h中时,为什么会出现此错误

解决方法

错误是这个(来自你的评论):

I had an #include “parser.h” in the catalog.h. I removed it,and Now it compiles normally…

假设#include“parser.h”在catalog.h中的typedef之前,并且在parser.h之前有一个包含catalog.h的源文件,那么在编译器包含parser.h时,typedef不是可用.最好重新排列头文件内容,这样就不会有循环依赖.

如果这不是一个选项,您可以确保包含这两个文件的任何源文件首先(或仅)包含parser.h.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐