gpt4 book ai didi

c - 使用结构时 C 中的不完整类型错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:09 25 4
gpt4 key购买 nike

你好,我遇到了一个问题。这是我的头文件,其中包含结构定义和方法原型(prototype)。

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)

我不明白哪里出了问题。如果能指出我犯了错误的地方,我将不胜感激。谢谢!

最佳答案

  1. 您的代码中没有struct ST。只有 struct SymbolTableST

    将声明更改为

    extern ST STable;

    和定义

    ST STable;
  2. Symbol_Put 需要一个指针作为第一个参数,但您传递了一个 ST。将调用替换为

    int id = Symbol_Put(&STable,sym_name);

关于c - 使用结构时 C 中的不完整类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com