高质量程序总结

上传人:hs****ma 文档编号:512165182 上传时间:2023-03-11 格式:DOCX 页数:4 大小:14.34KB
返回 下载 相关 举报
高质量程序总结_第1页
第1页 / 共4页
高质量程序总结_第2页
第2页 / 共4页
高质量程序总结_第3页
第3页 / 共4页
高质量程序总结_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《高质量程序总结》由会员分享,可在线阅读,更多相关《高质量程序总结(4页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

7、 static 变量的定义。使用断言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) 作用同上,但是同时将整数赋值为52. 开辟数组空间一维:int *a = new int100;开辟一个大小为100的整型数组空间 二维: int *a = new int56三维及其以上:依此类推.一般用法: new 类型 初值delete 用法:1. int *a = new int;delete a;/释放单个 int 的空间2.int *a = new int5;delete a; 释放int数组空间

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

当前位置:首页 > 学术论文 > 其它学术论文

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