[1]代码规范学习-初学者-c语言《<高质量 C++/C 编程指南>》

规范代码的书写从我做起,好的代码不仅利于重构,读起来也方便,写了这么久的代码一直没有好好规范一下,就像学习语文要先学习写字,规范的代码就像毛笔字,美丽又有价值,最近拜读<高质量 C++/C 编程指南>文章内容结合本书和个人思考,欢迎指正。

第一章 文件结构

  • declaration (声明)
  • definition (定义)
    一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件

1.头文件结构

头文件包含三部分
(1)头文件开始的版权和版本声明
(2)预处理块
(3)函数和类结构声明等
假设现在有一个头文件的名称为graphics.h

// 版权和版本声明见示例 1-1,此处省略。
 
#ifndef GRAPHICS_H // 防止 graphics.h 被重复引用 
#define GRAPHICS_H 
 
#include <math.h> // 引用标准库的头文件 …
#include “myheader.h” // 引用非标准库的头文件 … 
void Function1(); // 全局函数声明 … 
class Box // 类结构声明 
{}; 
#endif

现在来解读一下上面的代码规范。

一个头文件可能要再多个.c文件中被引用,如果多次重复引用就会造成资源的浪费,甚至说会有一些bug。

【规则】为了防止头文件被重复使用应该用 ifdef/define/endif处理代码块

我们再写c语言程序的时候,通常会自己定义.h头文件,自己定义的.h头文件并不在本地的标准库内,编译器搜索本地的库时搜索不到我们自己编写的头文件.

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

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

文章还给出了两个建议

头文件中只存放“声明”而不存放“定义”
不提倡使用全局变量,尽量不要在头文件中出现象 extern int value 这
类声明。

2.定义文件的结构

  • 对一些头文件的引用
  • 程序的实现题 包括(数据和代码)
    假设现在有一个定义文件graphics.cpp
#include “graphics.h” // 引用头文件 … 
// 全局函数的实现体 
void Function1() 
{} 
 
// 类成员函数的实现体 
void Box::Draw() 
{}

头文件的作用

以下为书本原内容

早期的编程语言如 Basic、Fortran 没有头文件的概念,C++/C 语言的初学者虽然会用使用头文件,但常常不明其理。这里对头文件的作用略作解释:
(1)通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。
(2)头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担

目录结构

如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分
别保存于不同的目录,以便于维护。
例如可将头文件保存于 include 目录,将定义文件保存于 source 目录(可以是多级
目录)。
如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声
明”。为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值