你好,我包含一個問題。 這是我的頭文件結構定義和方法原型。在使用結構時在C中的不完整類型錯誤
typedef struct SymbolTable
{
...some elements
}ST;
extern struct ST STable;
void Symbol_Put(ST *S, char* sym);
在我的C程序我使用:
#include "myheader.h"
struct ST STable;
和方法我使用來自頭文件的方法。
...body of the method...
int id = Symbol_Put(STable,sym_name);
Unfortuneately我收到此錯誤:
‘STable’ has an incomplete type
int s = Symbol_Put(STable,sym_name)
我不明白什麼是錯的。我會很感激我指出我在哪裏犯了一個錯誤。謝謝!
更換調用? – Olaf
此行的語法不正確:'extern struct ST STable;'由於typedef,該行應該是:'extern ST STable;'或'extern struct SymbolTable STable;'。注意:當使用大多數調試器時,使用標籤名稱'SymbolTable'將導致調試器在使用typedef名稱時顯示所有包含的字段:'ST'將顯示單個字段非常困難。 – user3629249