注意细节,成就编程高手之梦

本文摘录了一本关于高质量C编程书籍的部分内容,介绍了文件结构、程序版式、命名规则等编程规范,旨在帮助程序员建立良好的编程习惯。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近看了一本书,名字叫做高质量的c,其中就讲述了一名程序员在编程中要注意的一些问题,其中的一些必须注意的规范也让我觉得非常重要,所以特利用一些时间将这些内容摘抄出来,希望能对自己的编程有所影响,也希望分享给更多的人。

第一章文件结构
C++/C 程序的头文件以“.h”为后缀,C 程序的定义文件以“.c”为后缀,C++程序
的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。
1.1 版权和版本的声明(1)版权信息。
(2)文件名称,标识符,摘要。
(3)当前版本号,作者/修改者,完成日期。
(4)版本历史信息。
1.2 头文件的结构
头文件由三部分内容组成:
(1)头文件开头处的版权和版本声明(参见示例1-1)。
(2)预处理块。
(3)函数和类结构声明等。
规则:
1、为了防止头文件被重复引用,应当用ifndef/define/endif 结构产生预
处理块
2、用#include <> 格式来引用标准库的头文件(编译器将
从标准库目录开始搜索)。
3、用#include “” 格式来引用非标准库的头文件(编译器将
从用户的工作目录开始搜索)。
建议:
1、头文件中只存放“声明”而不存放“定义”
2、不提倡使用全局变量,尽量不要在头文件中出现象extern int value 这类声明。
1.3 定义文件的结构
定义文件有三部分内容:
1、定义文件开头处的版权和版本声明
2、对一些头文件的引用。
3、程序的实现体(包括数据和代码)。
1.4 头文件的作用
(1)通过头文件来调用库功能。1.5 目录结构
(2)头文件能加强类型安全检查。
1.5 目录结构
如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分
别保存于不同的目录,以便于维护
如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声
明”。
第 2 章程序的版式
空行起着分隔程序段落的作用使程序的布局更加
清而且空行不会浪费内存,恰当的使用空行是很有必要的
规则:
1、在每个类声明之后、每个函数定义结束之后都要加空行。
2、在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应
加空行分隔。


??2.2 代码行
规则:
1、一行代码只做一件事情,如只定义一个变量,或只写一条语句。
2、if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论
执行语句有多少都要加{}。这样可以防止书写失误。
建议
尽可能在定义变量的同时初始化该变量
如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用
了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。
2.3 代码行内的空格
规则:
1、关键字之后要留空格
2、函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。
3、‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。
4、‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束
符号,其后要留空格
5、赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,
如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^


”等二元操作符的前后应当加空格。
6、一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不
加空格。
7、象“[]”、“.”、“->”这类操作符前后不加空格。
建议:
对于表达式比较长的for 语句和if 语句,为了紧凑起见可以适当地去
掉一些空格
2.4 对齐
1、程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用
它们的语句左对齐。
2、{ }之内的代码块在‘{’右边数格处左对齐。
2.5 长行拆分
1、代码行最大长度宜控制在70 至80 个字符以内
2、长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以
便突出操作符)。
2.6 修饰符的位置
规则:
应当将修饰符 * 和& 紧靠变量名
2.7 注释
C 语言的注释符为“/*…*/”。C++语言中,程序块的注释常采用“/*…*/”,行注释
一般采用“//…”。注释通常用于:
??(1)版本、版权声明;
(2)函数接口说明;
(3)重要的代码行或段落提示。
规则:
但注释不宜太长。
2.8 类的版式
类提供
关键字public、protected 和private,分别用于声明哪些数据和函数是公有的、受保护
的或者是私有的。这样可以达到信息隐藏的目的,即让类仅仅公开必须要让外界知道的
内容,而隐藏其它一切内容。
类的版式主要有两种方式:
(1)将private 类型的数据写在前面,而将public 类型的函数写在后面。
采用这种版式的程序员主张类的设计“以数据为中心”,重点关注类的内部结构。
(2)将public 类型的函数写在前面,而将private 类型的数据写在后面采用这种版式的程


序员主张类的设计“以行为为中心”,重点关注的是类应该提供什么
样的接口(或服务)。
第 3 章命名规则
比较著名的命名规则当推Microsoft 公司的“匈牙利”法,该命名规则的主要思想
是“在变量和函数名中加入前缀以增进人们对程序的理解”
3.1 共性规则
1、标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。
程序中的英文单词一般不会太复杂,用词应当准确
2、标识符的长度要适中
3、命名规则尽量与所采用的操作系统或开发工具的风格保持一致。
4、程序中不要出现仅靠大小写区分的相似的标识符。
5、程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的
作用域不同而不会发生语法错误,但会使人误解。
6、变量的名字应当使用“名词”或者“形容词+名词”。
7全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)。
类的成员函数应当只使用“动词”,被省略掉的名词就是对象本身。
8、用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。
建议:
尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的
确需要编号。
3.2 简单的Windows 应用程序命名规则
1、类名和函数名用大写字母开头的单词组合而成
2、变量和参数用小写字母开头的单词组合而成。
3、常量全用大写的字母,用下划线分割单词。
4、静态变量加前缀s_(表示static)。
5、如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。
6、类的数据成员加前缀m_(表示member),这样可以避免数据成员与
成员函数的参数同名。
7、为了防止某一软件库中的一些标识符和其它软件库中的冲突,可以为
各种标识符加上能反映软件性质的前缀
这些只是书中的一小部分,而且只是节选了其主要内容,编程的规范对于一名合格的程序员来说真的很重要,希望更多的初学者能看看这本书,并用其中的规则和建议来严格要求自己,从一开始就养成良好的变成习惯。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值