C内部培训-CodingStyle

上传人:宝路 文档编号:48068012 上传时间:2018-07-09 格式:PPT 页数:29 大小:2.37MB
返回 下载 相关 举报
C内部培训-CodingStyle_第1页
第1页 / 共29页
C内部培训-CodingStyle_第2页
第2页 / 共29页
C内部培训-CodingStyle_第3页
第3页 / 共29页
C内部培训-CodingStyle_第4页
第4页 / 共29页
C内部培训-CodingStyle_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《C内部培训-CodingStyle》由会员分享,可在线阅读,更多相关《C内部培训-CodingStyle(29页珍藏版)》请在金锄头文库上搜索。

1、C+内部培训第一讲 coding style张 锴 2009-08-13D 说 明 本次培训是以交流为目的,意在通过培训的方式使诸 位对C+基础编程知识有初步的了解。此次培训所摘取 的资料皆来自前人的著作,本人才疏学浅,不敢妄言 自大,谨此对他们的成果进行肤浅的讲解。如果诸位 能从本次培训中有所收获,那将是本人的巨大荣幸。 在编写此次培训文档过程中引用了大量前人的宝贵资 料、经验,有感于前辈们对学识的执着探取与大公无 私的精神,借此机会对他们表示崇高的敬意。D 第一讲 coding styleD 程序结构 程序基本组成 每个C+程序通常分为两个文件。一个用于程序声 明(即头文件 *.h);另一

2、个用于程序的实现(即 定义 *.cpp)。 更为正规的程序会将“用于程序实现的文件”再细 化分为两个文件:一个用于实现头文件中声明的函 数;另一个用于程序的主干实现(main)。D 程序结构D 程序结构 版权意识 有人说:使用盗版软件就像在马路上拿枪抢劫一样 。 我很穷、没钱买正版,但要有感恩的心。 版权声明 版本信息 文件名称,标识符,摘要 当前版本号,作者/修改者,完成日期 版本历史信息D 程序结构 头文件的结构 版权声明 预处理 函数和类的声明 【头文件中不能定义函数、变量 。const常量、内联函数、函数模板除外】 【如果需要在多个*.cpp中使用同一个全局变量,需要 在一个*.cpp

3、中定义,并在相关头文件中使用extern 声明】D 程序结构 头文件的作用 通过头文件调用库功能(dll)。在很多场合,源代码不便向 用户公布,只要向用户提供头文件和二进制的库即可。用户 只需按照头文件中的接口声明来调用库功能,而不必关心接 口是怎么实现的。编译器会从库中提取相应的代码。 头文件能加强类型安全检查。如果某个接口被实现或使用时 ,其实现方式与声明不符,编译器就会报错,这一简单规则 能大大减轻程序员调试、改错的负担。D 程序结构 头文件补充说明 #include 与 #include C+的标准库很大,大的难以置信。为了避免名字冲突,C+标准库 将所有标识都定义在namespace

4、 std里。但这带来了一个新问题,无 数现有的C+代码都依赖于使用了多年的伪标准库中的功能,例如, 声明在,等头文件中的功能。现有软件没 有针对使用名字空间而进行设计,如果用std来包装标准库将导致现 有代码不能用 。因此,标准委员会决定为包装了std的那部分标准 库构件创建新的头文件名。生成新头文件的方法仅仅是将现有C+头 文件名中的 .h 去掉 ,所以变成了,变成了等等。 D 程序结构 头文件补充说明 #include 与#include 对于C头文件,采用同样的方法,但在每个名字前还要添加一个c 。 所以C的变成了,变成了,等等。 D 程序结构 头文件补充说明 需要说明的是:旧的C+头文

5、件(iostream.h等)是官方反对使用的(明确列 出不再支持),但旧的C头文件(stdio.h等)则没有(以保持对C的兼容性) 。实际上,编译器制造商不会停止对客户现有软件提供支持,所以可以预计 ,旧的C+头文件在未来几年内还是会被支持。 旧的C+头文件名如将会继续被支持,尽管它们不在官方标准中 。这些头文件的内容不在名字空间std中 。 新的C+头文件如包含的基本功能和对应的旧头文件相同,但头文 件的内容在名字空间std中 。(在标准化的过程中,库中有些部分的细节被 修改了,所以旧头文件和新头文件中的实体不一定完全对应 ) 标准C头文件如继续被支持。头文件的内容不在std中 具有C库功能

6、的新C+头文件具有如这样的名字。它们提供的内容和 相应的旧C头文件相同,只是内容在std中 【引入namespace std, 头文件还会有很多改变。所以,要么就采用旧头文件 名,要么就应该完全改用新的标准名称】D 编程格式 编程格式如同书法 格式虽不会影响程序的功能,但会影响可读性;影 响可读性,就会影响心情;影响心情,就会影响效 率;影响效率,就会影响工作;影响工作,就会影 响钱途;影响钱途,就会影响人生!因此按规范写 好程序的格式是一件影响人生的大事!D 编程格式程序块要采用缩进风格,缩进的空格数为4个。相对独立的程序块之间、变量说明之后必须加空行。较长的语句(大于80个字符)要分多行书

7、写,操作符放在新行之首,划 分出的新行要进行适当的缩进,例如: perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN+ STAT_SIZE_PER_FRAM * sizeof( _UL ); 循环、判断等语句中若有较长的表达式或语句,则要进行适当的划分, 长表达式要在低优先级操作符处划分缩进,操作符放在新行之首,例如 : if (taskno 运 算符除外),例如: int a, b, c; a = b + c; for (a = 0; a .从左至右 ! + - sizeof * int p = (a + b * c, b + a * c)

8、; int d = 20 / 8 * 8; int f = k+ % +m * 2; e *= a * b + c; 请问p、d、f、e的值?D 表达式和基本语句 if 语句 C+/C语言提供if语句的动机是:根据指定的表达 式是否为true,有条件的执行一条语句或语句块。 它是 C+/C中最简单、最常用的语句。 if语法的基本形式如下:if (condition)statement() elsestatement()D 表达式和基本语句 循环语句 for C+/C循环语句中,for的使用频率最高,while其 次。在使用for嵌套时需要注意效率,例如:for (row = 0; row 5;

9、 row+)for (col = 0; col 100; col+) 比反过来写的效率要高很多。 【应当将最长的循环放在内层,最短的放在最外层, 以减少CPU跨循环层的次数】D 表达式和基本语句 循环语句 for 【建议在for语句中的循环控制变量的取值采用“ 半开半闭区间”写法】。例如: for (int x = 0; x N; x+) 比 for (int x = 0; x = N-1; x+)的写法更加直 观。D 表达式和基本语句 switch语句 C+/C提供switch语句,作为一种“在一组互斥的项目中作选 择”的替代方法。 switch表达式可以是任意复杂的表达式,包括函数调用的返

10、 回值。它的值与每个case标签相关联的值作比较,直到某个 匹配成功或全部标签比较完毕。 普遍的误解是:只有与被匹配的case标签相关联的语句才被 执行。实际上程序从该点开始执行并继续越过case边界直到 switch语句结束。 【case后面的值必须是整型类型(包括字符型)的常量表达式 】例如: case 3.14: case ival: 都是错误的。这是因为 通过反汇编查看switch的原理发现,它实际是使用“cmp dword,常数”的形式,即使用cmp 而并非fcmp,并 且case后面的值必须为常数。D 表达式和基本语句试题 (选自横河重机面试题 2007-11-1)char *str = “12132143”; int sub = 0, num1 = 0, num2 = 0, num3 = 0, num4 = 0; while (strsub != 0) switch(strsub) case 1:num1+;case 2:num2+;case 3:num3+;case 4:num4+; sub+; 请问:num1,num2,num3,num4的值?D 备注 本章节内容摘自: 林锐 高质量C+/C编程指南 华为编码规范和范例 Stanley B Lippman C+ Primer Scott Meyers Effective C+D 谢谢!D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号