你好,我遇到了一个问题。
这是我的头文件,包含结构定义和方法原型。
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);
不幸的是,我得到了这个错误:
‘STable’ has an incomplete type
int s = Symbol_Put(STable,sym_name)
我不明白怎么了。如果你能指点我的错误所在,我将不胜感激。谢谢!
最佳答案
您的代码中没有struct ST
。只有struct SymbolTable
和ST
。
将声明更改为
extern ST STable;
以及对
ST STable;
Symbol_Put
需要一个指针作为第一个参数,但要传递一个ST
。将调用替换为int id = Symbol_Put(&STable,sym_name);
关于c - 使用结构时C中的不完整类型错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34569060/