在多个文件中使用typedef struct

在多个文件中使用typedef struct,c,eclipse,struct,typedef,C,Eclipse,Struct,Typedef,在我的一个头文件中声明了一个typedef结构。其关联的C文件可以找到typedef,但其他标题在读取时有困难 // In projectiles.h I have #ifndef PROJECTILES_H_ #define PROJECTILES_H_ struct TheProjectile { }; typedef struct TheProjectile Projectile; #endif /* PROJECTILES_H_ */ 在物理学中,我想用射

在我的一个头文件中声明了一个typedef结构。其关联的C文件可以找到typedef,但其他标题在读取时有困难

   // In projectiles.h I have 
#ifndef PROJECTILES_H_
#define PROJECTILES_H_

struct TheProjectile { };         
typedef struct TheProjectile Projectile;

#endif /* PROJECTILES_H_ */
在物理学中,我想用射弹

#ifndef PHYSICS_H_
#define PHYSICS_H_

#include "projectiles.h"

struct TheProjectile;

void set_Current_Angle(Projectile* PI);

#endif /* PHYSICS_H_ */

然而,在Eclipse中,我总是在PI之前出现“期望”错误。如果没有
typedef
,它可以正常工作。我做错了什么

在物理学中,你不应该有另一个“投影结构”。我认为这并不重要。我怀疑你的问题是/来自于你在这里发布的东西,因为我用
gcc-Wall-pedantic phys.c
编译了发布的代码,它只告诉我“struct theprojectle没有成员”,这是意料之中的。感谢你花时间这么做。我在一个单独的项目中也尝试过这样做,而且没有错误。我已经注释掉了实际代码中的所有内容,所以这很奇怪。但我肯定错过了什么。谢谢。我想你可能包括了一些东西——也许PI是一个宏——或者你对头文件的循环依赖性导致了问题。你是对的,我的头文件中有一个循环依赖性,我通过将它压入.cpp来修复它。我会记得下次在放置我的代码时包含这些东西。再次感谢。