C - 包括彼此在内的标题

时间:2016-01-12 14:23:56

标签: c gcc

我有一个文件game.h,其中包含此声明

typedef struct Enemy {
  ...
}Enemy;

一个功能

void moveEnemy(Level* l, Enemy* enemy){
  ...
}

Levellevels.h上宣布,因此在game.h我有:

#include "levels.h"

一切都很完美,直到我必须在Enemy中使用levels.h

所以,在levels.h我添加了:

#include "game.h"

现在我收到编译错误:

game.h:34:2: error: unknown type name ‘Level’
  Level* level;
  ^

我在两个.h

都包含了警卫

我不知道为什么我不能存档,包括另一个。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

只需在函数之前的 game.h 中添加一个前向声明,

typedef struct Level Level;

因为它只是指向Level的指针,所以会这样做。