C头文件-划分主要代码

标签 c header-files

我正在为一项学校作业做我的第一个“大/中”项目,我需要将我的代码分成一些其他的 c 文件。我的疑问是,是拥有许多文件/头文件而只包含少量代码更好,还是拥有更少的文件/头文件而其中包含更多代码/函数更好?

谢谢!

附注我是一名新手程序员,所以请耐心等待,并尽量使解释通俗易懂。

最佳答案

我的经验是,根据功能将代码分组到源代码/ header 中可以提高理解、测试、维护和重用它的能力。

每个文件中的代码量实际上取决于封装功能的复杂程度。例如,我有一个源文件,其中包含用于创建和附加到 WAV 文件的函数。它们相对较小,而且因为它们具有内聚性,所以我可以在任何需要创建 WAV 文件的项目中使用它们,而不会带来很多其他负担。其他文件可能很大(或非常大),但如果功能是内聚的,我会得到同样的好处。

当我开始这样做时,有一件让我感到困惑的事情是“多次包含”,这是由于在项目中多次包含相同的 header 而没有“保护”它而引起的。既然你说你是新手,我将添加一个快速示例,说明你可以采取哪些措施来防止它发生。

/**
   @file  my_header.h  
*/

ifndef  MY_HEADER_H // <- Prevents multiple inclusions
#define MY_HEADER_H // <- ...

#ifdef __cplusplus  // <- Allows this to be called from c++
extern "C" {        // <- See "name mangling for more info.
#endif              // <- ...

/**************************/
// your stuff goes here

struct my_struct
{
   // ...
};

// function prototypes, etc.

/**************************/
#ifdef __cplusplus
}
#endif

#endif // MY_HEADER_H

关于C头文件-划分主要代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43744915/

相关文章:

c - 我想连续从COM端口接收数据,同时想写入文件

c - POSIX/SUS header 中的类型定义

c - 主要在 input.h 中看不到我的函数

c++ - 为什么在头文件中声明并在文件中定义会出现多重定义错误?

c++ - 如何解决两个c++头文件相互引用的问题?

c - 字符串复制基础

c - 需要帮助使用 c 中的 strsep 函数

c - 如何重新启动用 Windows 编写的控制台 C 应用程序?

c - 将进程附加到新终端 (Mac OS)

c++ - C/C++ 中的自给自足头文件