高质量程序总结_第1页
高质量程序总结_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、往往题目很简单,考的是技术以外的细节如林锐博士去微软面试,人家让他写strcopy()函数;考的是以下细节:(1) 编程风格(2) 出错处理(3) 算法复杂分析,提高性能2、提高质量和生产率是软件工程要解决的核心问题3、IT企业拥有学士、硕士、博士学位的软件开发人员比比皆是,但是他们从不考虑代码的 正确性、健壮性、可靠性、效率、易用性、可读性、可扩展性、可复用性、兼容性、可 移植性等性能的理解。4、能长期稳定的编写出高质量程序的程序员称为编程老手; 能长期稳定的编写出高难度、高质量程序的程序员称为编程高手。5、头文件搜索目录#inelude <.h>引用标准库头文件,编译器将从

2、标准库目录开始搜索; #inelude .'h”引用非标准库头文件,编译器将从非标准库目录开始搜索。6、 头文件中只存放“声明”而不存放“定义”。不提倡使用全局变量,尽量不要在头文件中出现extern int value;这类声明。头文件(.h)结构:1) 头文件开头处的版权和版本声明2) 预处理块,防止重复编译3) 函数和类结构声明4) 非标准库的头文件引用能避免的要避免,只引用标准库头文件,非标准库头文件引 用放到定义文件中。定义文件(.c .cpp)的结构:1) 定义文件开头处的版权和版本声明2) 对非标准库文件的引用3) 程序的实现体(包括数据和代码)7、工程目录结构如果一个软

3、件的文件数量很多,则应将头文件实现文件分别存放于不同的目录下。第二章程序的板式1、空行1) 规则一: 在每个类声明之后、每个函数定义结束之后都要加空行。2) 规则二:在一个函数体内,逻辑上密切相关的语句之间不加空格,其他地方加空行。2、代码行1)规则一:一行代码只做一件事,如只定义一个变量,或只写一条语句,便于阅读,方便写注释。2)规则二:if、for、while、do等语句独占一行,执行语句不能紧随其后。不论执行语 句有多少都要加3)建议:尽量在定义变量的同时初始化它第三章常量:C语言中的常量用#define宏定义表示,C+中除了 #define夕卜,还可以用 const定义 常量。例:#d

4、efi ne MAX 100con st int MAX = 100;const float PI = 3.14159C+中用con st表示常量比#defi ne有更多的优点:1)con st有数据类型,而#defi ne没有2) 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。常量定义规则:1)需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文 件的头部。2)如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应 给出一些孤立的值。第六章函数1、函数接口的两个要素是参数和返回值值传递和指针传递C语言中,函数的参数和返回值的传递方式有两种:C+

5、冲多了引用传递。/良好的风格/不良的风格/良好的风格/不良的风格void SetValue(int width, int height); void SetValue(i nt, i nt);float GetValue(void);float GetValue();函数参数书写规则:规则一:参数的书写要完整,不要贪图省事只写参数的类型而省略参数名字。女口 果函数没有参数,则用void填充。规则二:如果参数是指针,且仅作输入用,则应在类型前加const,以防止该指针在函数体内被意外修改。con st & ”方式来规则三:如果输入参数以值传递的方式传递对象,则宜改用传递,这样可以省去临时

6、对象的构造和析构过程,从而提咼效率。规则四:避免函数有太多的参数,参数个数尽量控制在5个以内。如果参数太多,在使用时容易将参数类型或顺序搞错。规则五:如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。函数内部实现个规则:1、 在函数的“入口处”,对参数的有效性进行检查,如使用断言assert。2、在函数的出口处,对 return语句的正确性和效率进行检查,不能返回临时地址,即不可返回指向“栈内存”的“指针”或者“引用”。3、尽量避免函数带有“记忆”功能。相同的输入应当产生相同的输出,即函数内部不要有 sta

7、tic变量的定义。使用断言assert,如果assert的参数为假,那么程序就会中止(一般地还会出现提示对 话,说明在什么地方引发了assert)。例:assert(pvTo != NULL) && (pvFrom != NULL);/ 使用断言assert不是函数,而是宏。如果程序在assert处终止了,并不是说含有该 assert的函数有错误,而是调用者出了差 错,assert可以帮助我们找到发生错误的原因。4、C+中引用和指针以下程序中,n是m的一个引用,m是被引用物。int m;int &n = m;/引用是别名引用的一些规则如下,以及与指针的区别:(1) 引用

8、被创建的同时必须被初始化(指针则可以在任何时候被初始化)。(2) 不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。(3) 一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)例:int i = 5;int j = 6;int &k = i;k = j;/ k和i的值都变成了 6;5、C+中 new 和 delete 用法1.开辟单变量地址空间1) new int; /开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a =new int即为将一个int类型的地址赋值给整型指针a.2) int *a = new int(5)作

9、用同上,但是同时将整数赋值为52.开辟数组空间一维:int *a = new int100;开辟一个大小为100的整型数组空间二维:int *a = new int56三维及其以上:依此类推一般用法:new类型初值delete 用法:1. int *a = new int;delete a;/释放单个int的空间2.i nt *a = new in t5;delete a; /释放int数组空间出师表两汉:诸葛亮先帝创业未半而中道崩殂, 今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不

10、宜妄自菲薄,引喻失义,以塞忠谏之路也。宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其 刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚 以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能”,是以众议举宠为督:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。亲贤臣,远小人,此先汉所以兴隆也; 亲小人,远贤臣,此后汉所以倾颓也。 先帝在时, 每与臣论此事,未尝不叹息痛恨于桓、 灵也。侍中、尚书、长史、参军,此悉贞良死节之臣, 愿陛下亲之、信之,则汉室之隆,可计日而待也 :,“臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉 屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于 败军之际,奉命于危难之间,尔来二十有一年矣。先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之 明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论