c/c++语言开发共享C中带有typedef结构的未知类型名称

此代码写在名为Monster.c的文件中。 我在GameMain.c文件和Monster.c文件中都定义了Monster.h。 在Monster.h文件中,代码是:

#ifdef MONSTER_H_ #define MONSTER_H_ int Monster(int Selection); EnemyStats MonsterStats(int Selection); #endif 

然后我在Monster.c文件中创建了我的typedef结构,并创建了函数来返回结构的值。

 typedef struct EnemyStats { int EnemyHP; int VictoryExp; int EnemyLevel; } EnemyStats; EnemyStats MonsterStats(int Selection) { struct EnemyStats value; switch(Selection) { case 1: value.EnemyLevel = 1; value.VictoryExp = 1; value.EnemyHP = 1; return value; case 2: value.EnemyLevel = 1; value.VictoryExp = 1; value.EnemyHP = 1; return value; ... } 

在GameMain.c文件中,我使用此代码尝试访问存储在struct中的信息:

 EnemyStats result; ... printf("%d", result.EnemyLevel); 

当我使用gcc GameMain.c Monster.c时,它给出了错误

GameMain.c:40:2:错误:未知类型名称’EnemyStats’

GameMain.c:61:25:错误:请求成员’EnemyHP’不是结构或联合

如果我尝试在EnemyStats结果之前添加struct; 它给了我这个错误。

GameMain.c:在函数’main’中:

GameMain.c:40:20:错误:’结果’的存储大小未知

我不确定我做错了什么。 任何帮助表示赞赏。

对于任何不知道的人,我正在使用…说我正在跳过不会影响我描述的情况或代码冗余的代码

    思考:

    把所有这些放在一起,我们有:

    Monster.h

     #ifndef MONSTER_H_ #define MONSTER_H_ typedef struct EnemyStats { int EnemyHP; int VictoryExp; int EnemyLevel; } EnemyStats; int Monster(int Selection); EnemyStats MonsterStats(int Selection); #endif 

    Monster.c

     #include "Monster.h" EnemyStats MonsterStats(int selection) { struct EnemyStats value; return value; } int Monster(int selection) { return 0; } 

    GameMain.c

     #include  #include "Monster.h" int main() { EnemyStats result; printf("%d", result.EnemyLevel); } 

      以上就是c/c++开发分享C中带有typedef结构的未知类型名称相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/549676.html

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐