正确的 C 头结构

标签 c module header

构造标题的正确方法是什么?有一些类似的问题,但没有一个给出好的答案。现在我正在使用这个:

#ifndef INCLUDE_FILENAME
#define INCLUDE FILENAME

/* Includes */

/* Constants, enums */

/* Structure */

/* Globals */

/* Function prototypes */

#include "File.c"

#endif

然后我从程序中#include 标题。

必须以正确的顺序包含内容会带来很多问题,而且我相当确定这是错误的结构。

理想情况下,它应该在构建单个文件和单独构建模块时起作用。

一个相关的问题是:全局变量应该在头文件中实现,还是定义为外部并在源文件中实现?

最佳答案

理想情况下,头文件不应定义任何数据或代码。这意味着全局变量只能在 header 中声明,然后在源文件中定义

头文件的目的是给编译器提示,而不是包含实际的数据和代码。

此外,根本不打算包含源文件,每个源文件通常直接传递给编译器。

关于正确的 C 头结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8312543/

相关文章:

c - 将结构数组保存到共享内存

module - 在 Julia 中更改 REPL 模块/命名空间

iphone - 如何隐藏 UITableView 标题然后让它重新出现?

python - 数据帧标题错误 - 列数不如预期

c++ - 当进程在 linux 下结束时如何得到通知?

c - 如何从子进程更新共享数据?

c - 如何创建没有 MSVCR90D.dll 的 Win32 DLL?

javascript - ES6 模块导入和依赖管理

module - 一个模块如何具有多个文件?

c - 库包含在 tkill 中