我只是这个分离源文件的新手。 . 是否可以将我定义的类型共享给任何其他源文件? . . .
这是我在 myTypeDef.h 中的定义
typedef struct
{
int x, y, w, h;
short life;
}Man;
如果我创建一个新的 .h(名为 draw.h)文件来绘制图像会怎样:
#include "myTypeDef.h"
void rendererFunction(Man *man);
然后我创建一个 .c(名为 draw.c)文件,它将像这样实现 draw.h 中的内容:
#include "draw.h"
void rendererFunction(Man *man)
{
draw(man->x, man->y, man->w, man->y);
}
那如果我还创建了一个 update.h(和 update.c 用于实现)文件来更新他的位置呢?我真的必须将 draw.h 连接到 update.h 才能获得我的类型定义对象吗?或者当我在 main 中包含 .h 时,是否有任何其他方式共享类型定义的对象而不重复定义??
我希望有人能帮助我。谢谢
最佳答案
C 头文件中的一个常见习惯用法是包含保护。这些使用预处理器来防止诸如多重定义之类的事情。它们看起来像:
#ifndef MYMODULE_MYFILENAME_H
#define MYMODULE_MYFILENAME_H
.... Your definitions....
#endif
这允许您始终包含包含给定文件正在使用的内容的 header ,即使某些其他文件碰巧也包含您需要的 header 。事实上,这是一个很好的做法,这样如果稍后您重构一个头文件以不再包含您需要的文件,一些看似无关的代码就不会开始编译失败。
关于c - 在源文件中共享类型定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45873103/