高质量C++/ C编程指南-文件结构
前言本博主从前觉得代码管理软件质量这种东西从来没有放在心上自己能把项目做出来能看懂自己写的代码就好了直到入职一家公司后做的第一件事情就是被公司软件经理“ 坤哥 ”安排学习完这篇文档。初次学习这篇文档高质量C/ C编程指南 才知道自己最先的感受是惊慌我以前捏造的代码程序尽量都是毛病这些毛病全是致命的所以在学习这篇文档的同时也在用学习笔记去记录自己的对文档的理解希望我的这份学习笔记可以帮助到大家一下进步成长学习文档为高质量C/ C编程指南 【作者 林锐】高质量C/ C编程指南-文件结构每个C/C语言程序通常分为两个文件。一个文件用于保存程序的声明declaration称为头文件。另一个文件用于保存程序的实现称为定义definition文件。C/C程序的头文件以“ .h ”为后缀C程序的定义文件以“ .c ”为后缀C程序的定义文件通常以 .cpp 为后缀也有一些系统以“ .cc ”或“ .cxx ”为后缀。1.1 版权和版本的声明版权和版本的声明位于头文件和定义文件的开头参见示例1.1主要内容有1版权信息2文件名称标识符摘要。3当前版本号作者/修改者完成日期。4版本历史信息。示例1-1版权和版本的声明1.2头文件的结构1头文件开头出的版权和版本声明图片不展示2预处理块3函数和类结构声明等假设头文件名称为app_config.h头文件的结构参见示例1-2【规则1】为防止头文件被重复引用应当用#ifndef/#define/endif结构产生预处理块【规则2】用#include stdio.h格式来引用标志库的头文件编译器将从标准库目录开始搜索。【规则3】用#include stdio.h 格式来引用非标准库得头文件编译器将从用户工作目录开始搜索【建议1】头文件中只存放“ 声明 ”而不存放“ 定义 ”【建议2】不提倡使用全局变量尽量不要在头文件中出现现象extern int value 这类声明示例1-2三个预处理指令的核心作用头文件保护1、#ifndef 作用如果这个宏没有定义就执行下面的代码如果已经定义则直接跳转到#endif2、#deine 作用定义一个宏名在这里的作用不是替换文本而是打标记。第一次进来时定义它第二次进来时因为它已存在就跳过中间内容3、#endif 作用到此结束。和#ifndef配对圈定条件范围。1.3定义文件的结构1定义文件开头出的版权和版本声明图片不展示2对一些头文件的引用3程序的实现体包括数据和代码假设定义文件的名称为“ app_config.c ”定义文件的结构参见示例1.4头文件的作用1通过头文件来调用库功能。在很多场合源代码不便或不准想用户公布只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调动库功能而不必关心接口怎么实现的。编译器会从库中提取相应的代码。2头文件能加强类型安全检查。如果某个接口被实现或被使用时其方式与头文件中的声明不一致编译器就会指出错误这一简单的规则能大大减轻程序员的调试改错负担。1.5目录结构如果一个软件的头文件数目比较多如超过十个通常应将头文件和定义文件分别保存于不同的目录以便于维护。例如可将头文件保存于include 目录将定义文件保存于source目录可以是多级目录。如果某些头文件是私用的它不会被用户的程序直接引用则没有必要公开其 “ 声明 ”。为了加强信息隐藏这些私有的头文件可以和定义文件存放于同一个目录。总结心得头文件规则【规则1】为防止头文件被重复引用应当用#ifndef/#define/endif结构产生预处理块【规则2】用#include stdio.h格式来引用标志库的头文件编译器将从标准库目录开始搜索。【规则3】用#include stdio.h 格式来引用非标准库得头文件编译器将从用户工作目录开始搜索【建议1】头文件中只存放“ 声明 ”而不存放“ 定义 ”【建议2】不提倡使用全局变量尽量不要在头文件中出现现象extern int value 这类声明三个预处理指令的核心作用头文件保护1、#ifndef 作用如果这个宏没有定义就执行下面的代码如果已经定义则直接跳转到#endif2、#deine 作用定义一个宏名在这里的作用不是替换文本而是打标记。第一次进来时定义它第二次进来时因为它已存在就跳过中间内容3、#endif 作用到此结束。和#ifndef配对圈定条件范围。制作不易喜欢的小伙伴给个小赞赞喜欢我的小伙伴点个关注有不懂的地方和需要的资源随时问我哟