栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

关于C/C++的建议

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于C/C++的建议

提高C/C++效率的几种做法

记录《高质量程序设计指南》的所给出的一些建议,用作复习。

建议1

在使用运算符 “&&”的表达式中,要尽可能把最有可能为false的子表达式放在“&&”的左边;同样,在使用运算符**||**的表达式中,要尽量把最有可能为true的子表达式放在”||“的左边,因为C/C++对逻辑表达式的判断采取 “突然死亡法”。如果“&&"左边的子表达式计算结果为false,则整个表达式为false,后面的子表达式没有必要再计算。这种方法可以提高执行效率。

建议2

在if/else结构中,要尽量把为TRUE的概率较高的条件判断置为前面,这样可以提高该段程序的性能。

补充:
看到 if( NULL == p)这样的结构是合理的。为了防止讲 if(p == NULL)误写成 if( p = NULL),有意把p和NULL颠倒。编译器认为 if( p = NULL)是合法的,但是会指出 if( NULL = p)是错误的,因为NULL不能被赋值,类似的还有 if(100 == i)。

建议3

对于C/C++而言,不论行列数量如如何,要以先行后列的顺序遍历。这是因为如果采取 先列后行 的顺序遍历,则发生的页面交换次数要比 “先行后列”
多,且cache命中率相对也低。

建议4

C++程序中应尽量使用const来定义符号常量,包括字符串常量。
优点
(1)const常量有数据类型,宏定义没有;编译器可以对前者进行类型安全检查,对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应)。
(2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。

待续。。。。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971517.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号