c - 在源文件中共享类型定义

标签 c resource-files

我只是这个分离源文件的新手。 . 是否可以将我定义的类型共享给任何其他源文件? . . .

这是我在 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/

相关文章:

c - sizeof 运算符在 c 中显示错误的结构大小

php - 在哪里可以找到 joomla 内容源文件

c# - 每种语言的 .NET 本地化项目结构子文件夹

python - PYQT4 - 如何编译 qrc 文件并将其导入到我的程序中?

c++ - 当系统区域设置为法语时,德语资源仅从资源 dll 加载

c++ - 生成文件.am : How to Add rule for new extension?

c - 访问超出为指针分配的内存的索引

c - 段错误,执行所有代码行后程序崩溃

c - 骰子实验,增加最大 throw 次数

c++ - VkSurfaceKHR 指针的值在函数调用后发生变化,无需任何显式赋值