c/c++程序优化
2015-11-01 14:32
288 查看
1、静态成员未初始化
2、赋值运算符(operator=)未给所有的变量赋值
3、头文件中包含变量的定义
4、构造函数内变量初始化顺序与声明的顺序不一致
5、使用幻数
即:使用数字前用一个用一个变量去代替纯数字,使其可以表达数字的含义。
例如:(1)int a [ 5]; ( 2 ) int module_size = 5; int a [ module_size ] ;
6、命名空间嵌套层次超过两层。
7、使用外观相似的标识符。例如ao与a0,al与a1。
8、变量应间可能在小的范围内声明,改善程序的可读性,此外,如果变量在声明时就被初始化,其执行效率比在使用时才赋值更加高效
9、常量后缀使用小写字母。例:const long a=64l;因该为 const long a =64L;
10、自增++/自减--运算符与变量间有空格。
11、直接比较浮点数是否相等。
计算机中浮点数的存储是非精确存储的,不能直接使用==之类的比较夫直接比较。解决措施:比较a与b —— fabs(a-b) < 1.0E - 10
12、signed char 与 unsigned char 只能用来存储和使用数字型的值。例如 unsigned char a = 'A' //错误
13、 调用函数返回值之前,先判断
14、 内联函数inline函数体内含有局部静态变量。
原因:内联函数编译时直接被插入至代码调用处,多次调用内联函数将导致静态变量含有多个副本
2、赋值运算符(operator=)未给所有的变量赋值
3、头文件中包含变量的定义
4、构造函数内变量初始化顺序与声明的顺序不一致
5、使用幻数
即:使用数字前用一个用一个变量去代替纯数字,使其可以表达数字的含义。
例如:(1)int a [ 5]; ( 2 ) int module_size = 5; int a [ module_size ] ;
6、命名空间嵌套层次超过两层。
7、使用外观相似的标识符。例如ao与a0,al与a1。
8、变量应间可能在小的范围内声明,改善程序的可读性,此外,如果变量在声明时就被初始化,其执行效率比在使用时才赋值更加高效
9、常量后缀使用小写字母。例:const long a=64l;因该为 const long a =64L;
10、自增++/自减--运算符与变量间有空格。
11、直接比较浮点数是否相等。
计算机中浮点数的存储是非精确存储的,不能直接使用==之类的比较夫直接比较。解决措施:比较a与b —— fabs(a-b) < 1.0E - 10
12、signed char 与 unsigned char 只能用来存储和使用数字型的值。例如 unsigned char a = 'A' //错误
13、 调用函数返回值之前,先判断
14、 内联函数inline函数体内含有局部静态变量。
原因:内联函数编译时直接被插入至代码调用处,多次调用内联函数将导致静态变量含有多个副本
相关文章推荐
- 链表中的倒数第k个节点
- 3-4 计算长方形的周长和面积--SDUT
- C++11:右值引用和转移赋值
- 3-3 构造函数的调用(高级)--SDUT
- Eclipse下配置C++多线程pthread.h
- Eclipse 下C++ 多线程 pthread.h1
- c语言中的指针
- C++基础——一些细节、常犯错误的汇总
- 把C语言程序分割成若干源文件
- codeblocks注释颜色的修改
- C语言运算符优先级.
- C语言文法
- android framework添加对C++的支持
- 关于C语言中static,const,volatile与typedef的一些总结
- C++基础——用C++实例理解UML类图
- C语言的整合应用--通讯录的建立
- C语言-文件操作的函数
- C++之旅<静态数据成员与静态方法注意事项>
- 【LeetCode从零单刷】Binary Tree Level Order Traversal I & II
- C/C++输出格式