C/C++高质量编程(二)命名规则与表达式
来源:互联网 发布:c语言获取当前时间戳 编辑:程序博客网 时间:2024/05/16 05:54
上一篇讲述的是头文件与代码行的一些基本规则,本篇文章给出命名规则和表达式与基本语句的规则。
命名规则:
1. 标识符应该直观而且可拼读,让人望文生义,减少读者不必要的思考量,最好采用英语单词,方便阅读,切忌使用汉语拼音来命名(由于鄙人的英语水平不高,在此之前喜欢用汉语拼音命名),当然,英文单词要准确,不能胡乱配对;
2.标识符的长度应当符合“min-length && max-information”原则,即用较少的字符表示最大的信息量,当然,要表达清楚;
3.命名规则通常与所在操作系统与开发工具风格保持一致,不要混在一起,如windows采用大小写混排:AddChild,Unix采用小写加下划线:add_child。
4.程序中不要出现只用大小写区分的标识符如:x和X;
5.程序中的变量名不要完全相同,且变量名字使用名词,或者形容词加名词;
6.变量和参数用小写字母开头单词组成,常量可全用大写字母,用下划线分割单词。
表达式和基本语句:
一、运算符的优先级及其结合律
如果代码行中运算符较多,应当用括号确定表达式的执行顺序,增强可读性,毕竟记住表格中的内容有一定困难;
二、复合表达式
切忌编写太复杂的复合表达式以及功能多的表达式,如:
I = a >= b && c < d && c + f <= g + h;d = (a = b + c) + r;
三、if语句
不能将布尔变量直接与TURE、FALSE、或者1、0进行比较,布尔类型FLASE为0,即为假,非零值则为真TURE;如:
if (flag == TURE) //flag为布尔变量if (flag == 1)
整型变量用“==”或“!=”直接与0比较,不要和布尔变量搞混;
浮点变量不能用“==”或“!=”与任何数字比较,如 if (x == 0.0);
指针变量用“==”或“!=”与NULL比较,不能与0比较,NULL不能被赋值;
四、循环语句的效率
提高循环体效率的基本办法是降低循环体的复杂性
1. 在多重循环中,将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨循环层的次数:
for (col=0; col<5; col++){ for (row=0; row<100; row++) { .....(1) sum = sum + a[row][col]; }}
for (row=0; row<100; row++){ for (col=0; col<5; col++) { .....(2) sum = sum + a[row][col]; }}如上,(1)的效率就比(2)高,长循环在内层。
2. 如果循环体内有逻辑判断,并且循环次数很大,应该将逻辑判断移到循环体外面,提高效率,当然,循环次数小,则不影响;
五、for语句的循环控制变量
1. 不可以在for语句的循环体内修改循环变量,防止for循环失去控制;
2. 最好将for语句的循环控制变量取值采用“半开半闭区间”写法。如“0 =< x < N”而不是“0 =< x <= N-1”
六、switch 语句
switch有多分支选择语句,这是它存在的理由。
swicth (varlable){ case value1: ... break; case value1: ... break; ... default: ... break;}
每个case语句的结尾不要忘了break,除非故意使多个分支重叠;
不要忘了最后的default分支,无论什么情况都应该保留语句 default:break。
七、goto语句
goto语句可从多重循环体中一下子跳到外面,用不着写很多次的break语句,但是我们尽量少用,慎用goto语句。
下篇文章将粗略介绍常量,详细说明函数的规则。
1 0
- C/C++高质量编程(二)命名规则与表达式
- 高质量c/c++编程学习之二:命名规则
- <高质量C>C++/C命名规则
- 第三章 高质量C编程规范命名规则
- 高质量C++/C编程指南(第3章 命名规则)
- 高质量C++/C编程指南 -- 第3章 命名规则
- 高质量C++/C编程指南 -- 第3章 命名规则
- 高质量C++/C编程指南 -- 第3章 命名规则
- 高质量C++/C编程指南 -- 第3章 命名规则
- 读书笔记-高质量C++/C编程指南-第3章 命名规则
- 高质量C++/C编程指南 -- 第3章 命名规则
- 高质量C++/C编程指南 -- 第3章 命名规则
- 高质量C++/C编程指南 -- 第3章 命名规则
- 高质量c编程指南 之二
- 高质量C\C++编程(二)
- 高质量编程之命名规则
- 读书笔记_高质量程序设计指南C++/C语言_11_应用程序命名规则
- 林锐C++/C高质量编程附录答案(二)
- 水仙花数
- 四、网络基础
- node.js 任务2 web版helloworld
- 树莓派打造对话机器人 Python
- Tensorflow学习资料
- C/C++高质量编程(二)命名规则与表达式
- Linux入门:线程同步与互斥(二)——条件变量
- TCP/IP四层模型和OSI七层模型
- MySQL命令行导出数据库
- RxJava(响应式函数编程)初体验
- RTMP视频流格式解析
- ZOJ-1610 线段树区间更新
- JSP指令元素,JSP内置对象及JSP标签
- 个人知识管理的方法