C头文件 - 划分主代码

Joã*_*ues 0 c header-files

我正在为学校工作做第一个"大/中"项目,我需要将我的代码分成其他一些c文件.我怀疑的是,如果有更多的文件/头文件只有几个小代码,或者有更少的文件/头文件和更多的代码/功能?

谢谢!

ps我是一名新手程序员,所以请耐心等待并尝试使解释易于理解.

Jus*_* J. 5

我的经验是根据功能将代码分组到源/头中增加了理解,测试,维护和重用它的能力.

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

当我开始这样做时,让我绊倒的一件事是"多次包含",这是因为在项目中多次包含相同的标题而没有"保护"它.既然你说你是新手,我会添加一个快速的样本,你可以做些什么来防止它.

/**
   @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
Run Code Online (Sandbox Code Playgroud)

  • 我的理解是结构定义了一种类型.为了使它成为一个变量声明,你可以使用`struct my_struct variable_name;`下面的另一行来获得一个变量定义. (2认同)