gpt4 book ai didi

移动到不同的头文件后无法发送指向结构的指针

转载 作者:行者123 更新时间:2023-12-05 09:32:17 25 4
gpt4 key购买 nike

我有一个程序分布在 3 个不同的 C 文件中,带有 2 个头文件。我最初有用于保存“ map ”结构(以及其他)的标题“Player.h”:

#ifndef PLAYER_H_INCLUDED
#define PLAYER_H_INCLUDED
typedef struct map{
float x;
float y;
}map;
/// some other functions and structures///
#endif

我想将它移动到它自己的头文件“Map.h”中,以便它与其他与 map 相关的函数和结构一起移动。

#ifndef MAP_H_INCLUDED
#define MAP_H_INCLUDED
typedef struct map{
float x;
float y;
}map;
#endif

我正常制作了 Map.c 文件,在其中编写了一个可以运行的函数,但我还没有在 main.c 中调用该函数。我在 main.c 中制作了“ map ”数据结构如下:

#include "Player.h"
#include "Map.h"
int main(){
... /// some other stuff being done

map map;
map.x = 0;
map.y = 0;
... /// more stuff being done

callfunctioninplayer(&map, /// other variables///)
}

因此我调用了 player.c 中的函数,其中我还使用 #included "Map.h" 包含了 map.h。但是在尝试编译它之后,它在我请求 map* map 结构的所有地方都给了我一个错误:


In file included from ./main.c:10:0:
./Player.h:21:55: error: unknown type name ‘map’
void movementPlayer(int* inputPlayer, player* player, map* map, unsigned int countFrames);

./Player.h:21:55: error: unknown type name ‘map’
void movementPlayer(int* inputPlayer, player* player, map* map, unsigned int countFrames);
^~~
In file included from ./Map.c:10:0:
./Player.h:21:55: error: unknown type name ‘map’
void movementPlayer(int* inputPlayer, player* player, map* map, unsigned int countFrames);

我检查了 map.h 是否在所有地方都定义了,是的,我在将 map 结构放回 player.h 后再次测试了它。将其放回 player.h 有效,但为什么在 map.h 中不起作用?很抱歉,如果这个问题被问了很多,我查看了一些帖子,但找不到任何有相同错误的人

最佳答案

看起来 map 正在 Player.h 中使用,但是在包含 Player.h 的地方还没有包含 Map.h,大概你没有包含 Map.h在 Player.h 中。

如果 Player.h 需要在 Map.h 中定义,那么您需要在 Player.h 中#include "Map.h"

关于移动到不同的头文件后无法发送指向结构的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68215237/

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