源文件和头文件在嵌入式编程中的同名意图是什么?
是否可以在头文件中声明函数然后在源文件中定义它们。
Example.h有函数声明
void func();
Example.c有函数定义
void func()
{
printf("Do Nothing");
}
答案 0 :(得分:1)
这主要是品味问题。我发现在编写库时,为主.c文件提供库的名称是很方便的,而用户将#include的.h文件显然会使用该名称,以方便用户使用。
在非库源代码库中,有些人喜欢为每个.c文件都有一个.h文件来声明该.c文件中的所有外部函数。就个人而言,我不喜欢这个 - 它需要使用这些外部文件的每个文件都知道它们所在的文件,并且它使得分割大文件变得乏味,因为你需要更新.h文件以及#include它的所有.c文件。我更喜欢拥有覆盖代码区域的.h文件,而不是特定文件;在模块化不是问题的小代码库中,我认为单个externs.h文件对于一切都很有效。但这绝对是一个有能力的工程师不同意的品味问题。
(但请注意,声明.h文件中的所有externs,以及.c文件实例化全局#include .h文件,是良好编码的基础。没有extern关键字应该出现在.c文件中,你应该将编译器警告标志点亮为全局定义上的错误而没有匹配的extern声明;这可以保证每个文件都同意extern符号被声明为什么)