包含.c文件和.h文件有什么区别

edd*_*ark 5 c c++ include header-files difference

很多时候,当我看到其他人的代码时,我看到一些包括.h文件,有些包括.c/.cpp文件.有什么不同?

unw*_*ind 7

这取决于文件中的内容.

#include预处理指令只需插入在原始文件点引用的文件.

那么实际的编译器阶段(在预处理器之后运行)看到的是所有插入的结果.

头文件通常是设计用于通过的#include.源文件不是,但它有时是有道理的.例如,当您有一个仅包含定义和初始化程序的C文件时:

const uint8_t image[] = { 128, 128, 0, 0, 0, 0, ... lots more ... };
Run Code Online (Sandbox Code Playgroud)

然后通过使用将其用于某些代码是有意义的#include.它是一个C文件,因为它实际上定义了(不仅仅是声明)一个变量.也许它保存在自己的文件中,因为图像从用于编辑的其他(图像)格式转换为C源.

  • @ eddard.stark是的,这很常见.标头用于描述由C文件实现的代码模块的*public*接口.不要包含任何`static`函数原型,它们不是公开的. (2认同)