【发布时间】:2014-12-06 05:31:33
【问题描述】:
也许我使用了一个完全错误的 typedef 结构并且我要问一个愚蠢的问题,所以如果是这种情况,请原谅。我有 Monster.h。
#ifndef MONSTER_H_
#define MONSTER_H_
typedef struct EnemyStats
{
int EnemyHP;
}EnemyStats;
int Monster(int Selection);
EnemyStats MonsterStats(int Selection);
#endif
然后我有 Monster.c
#include <stdio.h>
#include "Monster.h"
EnemyStats MonsterStats(int Selection)
{
EnemyStats value;
value.EnemyHP = 60;
return value;
}
现在请理解,为了测试这个问题,我已经简化了我的代码,最初我的 typedef 结构中有 3 个整数,并且在每个 int 中存储了不同的数字后返回值。最后我有一个包含 main 函数的 Test.c 文件。
#include <stdio.h>
#include "Monster.h"
int main()
{
MonsterStats(1);
EnemyStats value;
printf("%d\n", value.EnemyHP);
}
在程序的三个单独运行中,我得到了值:
5226069
12000853
11939413
我真的找不到发生这种情况的任何地方,我不知道我做错了什么或者我是否滥用了结构。感谢所有帮助。
【问题讨论】:
标签: c struct return printf typedef