当前位置: 首页 > news >正文

C语言文件结构

1.前言

在工作中时长用的C,但总感觉缺少了什么,在学习一些视频时看到有推荐《高质量C++/C编程指南》,虽是培训资料,但深受感悟,想将其中的东西自己过一遍,并将其中的一些知识拓展,遂有此专栏

2.正文——文件结构

每个C语言程序通常分为两个文件,一个是.h为后缀,一个是.c为后缀。

.h称为头文件,用于保护程序的声明(declaration )

.c称为定义( definition )文件,用于保存程序的实现(C++是.cpp 为后缀)

2.1版权和版本的声明

版权和版本的声明位于头文件和定义文件的开头,主要内容有:

1)文件名称,摘要

2)版本,时间,作者

3)版权,历史信息

2.2头文件的结构

头文件由三部分内容组成:

1)头文件开头处的版权和版本声明。

2)预处理块。

3)函数和类结构声明等。

头文件的一些定义有以下规则:

<1>为了防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预处理块。

<2> 用 #include < filename.h> 格式来引用标准库的头文件(使用时编译器会从标准库目录开始搜索)。

<3>用 #include “filename.h” 格式来引用非标准库的头文件(编译器会从用户的工作目录开始搜索)。

小建议:

1.头文件中只存放“声明”而不存放“定义”

在 C++ 语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。建议将成员函数的定义与声明分开,不论该函数体有多么小。

2.不提倡使用全局变量,尽量不要在头文件中出现象 extern int value 这类声明。

假设头文件名称为Test.h,头文件的结构见下图

定义文件有三部分内容:

(1)定义文件开头处的版权和版本声明(参见 2.1图示 )。

(2) 对一些头文件的引用。

(3) 程序的实现体(包括数据和代码)。

假设定义文件的名称为 Test.cpp, 定义文件的结构见下图

2.3 头文件的理解

在学习的早期,我们可以使用一个源文件来实现我们简单的学习,但在后期不断提高以及大项目中,我们是不可能把所有源码写在一个源文件中,需要很多个源文件,然后编译为一个exe进行输出,如果在每个源文件都要重复写出所有外部函数、类的完整声明,显得有点“傻”,头文件的应用让我们在写代码时更方便,ifndef/define/endif的结构可以防止一个的东西被反复定义,我们当然不可能写出

#include "Test.h"

#include "Test.h"

但却不能确保已经存在于Test.h的某个函数不被再次定义

2.4头文件的作用

防止重复定义或者便利已经在理解中有所说明,还有一个在工作中更多有所体会的作用,

头文件只放声明,而定义(实现)放在.c/.cpp中。这种分离带来的直接好处是:

  • 当源代码不便或不准向用户公布时,只需提供头文件 + 二进制库.lib/.a/.so等)。用户通过头文件中的接口声明调用库功能,无需关心内部实现细节,保护了知识产权。

  • 同时,这种方式允许分别编译与链接,提高大型项目的构建效率

http://www.jsqmd.com/news/1027971/

相关文章:

  • 全爱科技诚邀莅临 | 2026 高等教育博览会 携摩尔线程 GPU + 昇腾 NPU全栈 AI 解决方案,共启科教数智新征程
  • SH9脑机协同中的注意力分配与认知负荷优化机制研究——基于“仁爱“导向的人机共生视角(世毫九实验室原创研究)
  • 基于MCF51MM256的医疗设备数据上传至Google Health完整实验指南
  • 黑苹果一键配置神器:OpCore Simplify完全指南
  • 性能优化困局:3个技术突破点助你提升50%开发效率
  • Rescuezilla:你的终极系统恢复瑞士军刀,图形化克隆备份解决方案
  • 2026景区激光水幕秀品牌甄选指南:从技术到落地的多维解析 - 优质品牌商家
  • 掌握 ViT(Vision Transformer)模型结构——Transformer 如何征服计算机视觉领域
  • 2026年光纤拉伸器厂家推荐指南:权威甄选与行业深度解析 - 优质品牌商家
  • Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
  • 轻轻松松——简单却详细的linux系统下的线程管理 教学,小白必看!!!
  • Windows系统下利用符号链接实现谷歌浏览器自定义安装路径的完整指南
  • 猫抓浏览器插件:5分钟学会免费资源嗅探终极指南
  • 分布式计算机1
  • 有实力的开袋真空吸盘品牌有哪些?聚昌利怎么样 - mypinpai
  • 2026年通辽岗亭采购指南:三大厂商综合实力与区域服务能力深度评测 - 优质品牌商家
  • Harmonyos pc实战之ArkUI 组件详解
  • 端侧Qwen3轻量化部署与Skill开发实战
  • 豆包2.0+扣子编程:零成本AI Bot开发实战指南
  • TPE热塑性弹性体加工厂哪家靠谱? - mypinpai
  • chap7学习内容
  • 2026年供应链管理服务商甄选指南:业财一体化与本地化服务能力深度评测 - 优质品牌商家
  • 2026年南充地区消防维保与检测服务甄选:本地企业实力解析与咨询指南 - 优质品牌商家
  • 2026年浙江岗亭与环卫设施供应商甄选:杭州同创、四川宏亦凡、鄂尔多斯有为等企业入局 - 优质品牌商家
  • 如何快速找回消失的网页:3步掌握网站时光机的终极指南
  • 2026深港两地做全屋定制一般多久能完工交付?
  • 联想超级文件全解析!跨设备传输 + 云备份一站式文件管理方案
  • Saga 分布式事务:你以为的最终一致性,其实是个慢动作炸弹
  • 6种开箱体验创意,提升客户满意度
  • Divinity Mod Manager:告别《神界:原罪2》模组管理噩梦的终极解决方案