我有這個錯誤:預期的聲明說明符或 '...' 前 'list_node'
typedef struct node* list_node;
struct node
{
operationdesc op_ptr;
list_node next;
};
一個catalog.h文件和parser.h這個
#include "catalog.h"
int parse_query(char *input, list_node operation_list);
兩個頭有#ifndef
,#define
,#endif
。 編譯器給了我這個錯誤:parse_query行上的expected declaration specifiers or ‘...’ before ‘list_node’
。 什麼事情? 我試圖把typedef放在parser.h中,並沒有問題。爲什麼當typedef位於catalog.h中時會出現此錯誤?
實際上,我在catalog.h中有一個#include「parser.h」。我刪除它,現在它編譯通常...我想它試圖加載parse_query定義之前的typedef和結構定義..? – pvinis 2011-02-15 08:48:04
catalog.h中的#ifndef究竟是什麼樣的?嘗試cc -E查看預處理器輸出,以查看list_node是否真正在parse_query行的點處定義。 – 2011-02-15 08:49:02