首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编译错误,我找不到

编译错误,我找不到
EN

Stack Overflow用户
提问于 2011-08-14 12:13:22
回答 3查看 165关注 0票数 2

当我尝试使用某个结构时,我得到了一个“‘data’的存储大小未知”的提示。

代码:

ioHelper.h:

代码语言:javascript
运行
复制
    #ifndef IOHELPER_H_
    #define IOHELPER_H_

    typedef struct fileValues data;

    struct fileValues ioInput(FILE* file,int dim,int sign);

    #endif /* IOHELPER_H_ */

ioHelper.c:

代码语言:javascript
运行
复制
    struct fileValues
    {
int dim;
char sign;
double x;
double y;
    };

map.c:

代码语言:javascript
运行
复制
    void drawData(FILE* vectors)
    {

double paramLoc [MAX_DIMENSION];
char sign;
(this is where i get the error) struct fileValues data;
    ...
    }

有什么想法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2011-08-14 12:15:49

这是因为在编译map.c时,编译器无法在IoHelper.c中看到结构的完整定义。

您可能只包含了IoHelper.h,它有(不完整的)声明,没有定义。

因此您不能在map.c中声明该结构类型变量,除非您

  • include IoHelper.c (糟糕的想法)
  • 将结构定义放在map.c中的一个指向该结构的指针中,并对其进行malloc。
票数 5
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7054961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档