gpt4 book ai didi

c - 在C中,变量不保留我分配给它的值并返回到0

转载 作者:行者123 更新时间:2023-11-30 21:46:06 26 4
gpt4 key购买 nike

我正在用 C 语言编写一个简单的游戏引擎,但遇到了一个非常奇怪的问题。

//SANJI
objs[1].animation = 1;
objs[1].pho.h = 52;
objs[1].pho.w = 25;
objs[1].pho.tmp_pos.x = 190;
objs[1].pho.tmp_pos.y = 40;
objs[1].pho.gravity = 1;
objs[1].hp = 10;

printf("%d\n", objs[1].hp);//outputs 0???????

看来无论我做什么变量(成员)hp拒绝接受任务并返回 0 。我尝试用Google搜索,但恐怕无法准确地表达这个问题。

编辑:这是 OBJ 结构的定义:

struct OBJ{
//animation
char animation;//if true apply animation; experimetnal

MOVIE sprites;
PHYSOBJ pho;

//OBJ_STATE state;
OBJ_STATE states[SEQ_MAX][ST_MAX];
int img;//number of image


int hp;

//control; AI or human
char control;//0 human, otherwise AI
};

并且 printf 和 objs[1].hp = 10; 之间没有代码;我把 printf 放在那里进行测试

最佳答案

以下建议代码:

  1. (通常)演示如何编写函数
  2. 干净地编译
  3. 执行所需的功能

现在建议的代码:

#include <stdio.h>

struct POS
{
int x;
int y;
};


struct PHO
{
int h;
int w;
struct POS tmp_pos;
int gravity;
};
typedef struct PHO PHYSOBJ;


struct OBJ
{
//animation
char animation;//if true apply animation; experimetnal

//MOVIE sprites;
PHYSOBJ pho;

//OBJ_STATE state;
//OBJ_STATE states[SEQ_MAX][ST_MAX];
int img;//number of image


int hp;

//control; AI or human
char control;//0 human, otherwise AI
};


int main( void )
{
struct OBJ objs[2];

objs[1].animation = 1;
objs[1].pho.h = 52;
objs[1].pho.w = 25;
objs[1].pho.tmp_pos.x = 190;
objs[1].pho.tmp_pos.y = 40;
objs[1].pho.gravity = 1;
objs[1].hp = 10;

printf("%d\n", objs[1].hp);//outputs 0???????

return 0;
}

编译、链接、运行时,输出如下:

10

所以问题出在你没有向我们展示的东西上。

关于c - 在C中,变量不保留我分配给它的值并返回到0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51976856/

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