头文件和源文件同名问题

5

在嵌入式编程中,源文件和头文件同名的意图是什么?

这是因为我们可以在头文件中声明函数,然后在源文件中定义它们。

例如,Example.h包含函数声明。

void func();

Example.c有函数定义。

void func()
{
 printf("Do Nothing");
} 

1
“同名”是什么意思?你是指实际的文件还是文件内部的符号?是的,头文件通常用于函数的声明,而它们的定义在单独的源文件中。这是头文件的目的之一,即声明事物,以便您可以将其包含在多个源文件中,并在包括头文件的每个地方都具有相同的声明。 - Some programmer dude
2
你的意思是除了“.h”和“.c”扩展名之外,名称相同吗?这不是强制性的,但这是一个非常好的想法。这意味着您可以轻松地将头文件与源代码文件中的非静态项的声明相关联。这不仅适用于嵌入式编程。 - cdarke
“文件名扩展名”(.c,.h,.bla,...)是文件名的一部分。 - alk
1个回答

3
这主要是看个人喜好。我发现在编写库时,将主要的.c文件命名为库的名称很方便,而用户将明显采用包含该名称的.h文件,以使用户更容易使用。
在非库源代码中,有些人喜欢为每个.c文件创建一个.h文件,声明该.c文件中的所有外部函数。个人而言,我不喜欢这样做-它需要使用这些外部函数的每个文件都知道它们所在的文件,并且将大文件拆分变得繁琐,因为您需要更新.h文件和所有包含它的.c文件。我更喜欢覆盖代码区域而不是特定文件的.h文件;在小型代码库中,如果模块化不是问题,则单个externs.h文件适用于所有内容,这是我认为效果很好的方法。但是这绝对是一种口味,可以让有能力的工程师产生分歧。
(但请注意,在.h文件中声明所有外部函数,并在实例化全局变量的.c文件中包含该.h文件是良好编码的基本原则。不应将任何外部关键字出现在.c文件中,并且应将编译器警告标志设置为在没有匹配的外部声明的情况下出现全局定义错误; 这保证每个文件都同意外部符号的声明方式)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接