C与C++中的常用提高程序效率的方法

1.用a++和++a及a+=1代替a=a+1,用a--和--a及a-=1代替a=a-1

通常使用若把一个函数定义为内联函数,则在程序编译阶段,编译器就会把每次调用该函数的地方都直接替换为该函数体中的代码,因此省却了函数的调用及相应的保护现场、参数传递和返回等操作,从而加快了整个程序的执行速度。总之,存储单元。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。所以引用传递是比非引用传递快的。

而且引用传递可以直接改变参数的值,但是如果使用非引用传递则要将参数声明为全局变量才能改变其值。(指针为间引用)

常引用

  常引用声明方式:const 类型标识符 &引用名=目标变量名;用这种方式声明的引用,不能通过引用对目标变量的值进行修改,从而使引用的目标成为const,达到了引用的安全性。

4.减少除法运算

无论是整数还是浮点数的运算,出发都会比较耗时,所以最后将除法运算等效成乘法运算。例如:a/b>20可改为a>b*20,可以简化程序的运行时间。

5.推迟定义本地变量

虽然C语言中标准是将变量统一定义在开头,但是在C++中最好放弃这种做法,因为这会带来不必要的开销,而且费时费力。

定义一个对象变量通常需要调用一次函数(构造函数)。如果一个变量只在某些情况下需要(例如在一个if声明语句内),仅在其需要的时候定义,这样,构造函数仅在其被使用的时候调用。

并且,推迟变量的定义会提高程序的效率,增强程序的可读性,形成更好的可视性。

6.在一大段内存进行初始化时,尽量使用memset,例如数组的多次初始化

……

目前先更新这C++学习进一步深入时继续更新

时间: 2024-12-16 18:52:07

C与C++中的常用提高程序效率的方法的相关文章

在一个千万级的数据库查寻中,如何提高查询效率?

在一个千万级的数据库查寻中,如何提高查询效率? 1)数据库设计方面:  a.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. b.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0

几个提升JSP应用程序效率的方法(转)

原文出处:http://www.3lian.com/edu/2010/11-28/3711.html# 本文介绍了几个调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强.而且在用户数增加的情况下,系统负载会呈现出平滑上长的趋势.我将通过一些实际例子和配置方法使得你的应用程序的性能有出人意料的提升.其中,某些调优技术是在你的编程工作中实现的,而另一些技术是与应用服务器的配置相关的.我们将详细地描述怎样通过调整servlet和JSP页面,来提高你

PHP提高编程效率的方法,你知道多少呢?

PHP语言是最WEB的计算机语言,而且也是应用最广泛的语言,那么PHP对编程的影响有多大呢?下面可以去了解一下. 用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种 可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号).1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.2.$row[’id’] 的速度是

汉字转拼音 敏感词过滤 禁用词查找 提高程序效率另外一种思路:反向思维

汉字转拼音 敏感词过滤 禁用词查找 这些很常用的互联网需求 大家出道时是怎么做的? 大家偷懒时是怎么做的? 常规算法 - 从数据库到用户提交内容去匹配: 把数据库中所有数据压到大数组中(这时数据越多,与数据库连接时间越长) 根据用户提交的内容对大数组进行foreach(这时数据越多,占有服务器内存越大) 根据上述结果,进行相应的返回.处理(这时数据越多,与数据库连接时间越长) 优点: 逻辑简单,实施方便,开发成本低,人算素质要求低 缺点: 程序效率低,数据库压力大,速度慢 有bug,比如数据库中

[Matlab]提高程序运行效率的方法[转]

1. 循环矢量化Matlab是为矢量和矩阵操作而设计的,因此,可以通过矢量化方法加速M文件的运行.矢量化是指将for循环和while循环转换为等价的矢量或矩阵操作.下面给出一个循环的例子:i=0;for n = 0:0.1:1000    i=i+1;    y(i)=cos(n):end那么我们可以矢量化为:n= 0:0.1:1000;y=cos(n);我们可以用tic和toc函数来查看上述各代码运行的时间,采用for循环的程序0.39秒(具体时间和计算机配置有关),而矢量化后几乎耗时为0.

Android中一些常用来持久化存储的方法

在安卓SDK中有许多机制可以用来保存数据,决定使用哪一种和何时触发该操作常让人困惑. 当创建个人应用程序的时候你想要做的第一件.最容易的事就是保存一些用户输入的.明确需要保存的数据.下面是一些常用来持久化存储的方法:(附Android应用开发入门教程) 数据保存最基本的方法就是保存到外置存储设备的文件上.这种存储可以被用户和所有的应用程序获得,当设备当作外置存储挂在的时候也可以看到.即使 你的应用卸载了该文件也会一直保留,除非你用GetExternalFileDir方法获得保存文件的文件夹.这最

提高软件测试效率的方法探讨

摘要:有位大师曾经问我,如何快速发现软件中的BUG?在当时有限时间情况下,我只说了测试者经验.熟悉需求等几个方面,显示这样的回答没能令他满意.软件测试有无银弹?有无高效的测试方法能尽快尽多发现软件中的缺陷?本文汲取部分软件测试工作者经验并结合笔者工作经历,就提高测试效率的一些方法进行归类探讨,以期和同行共享. 关键词:软件测试,效率 前言: 软件缺陷暴露得越早,越能降低开发和维护成本.研究表明软件寿命周期中,暴露缺陷的阶段与修改缺陷产生的开发成本之间的对应关系如下图所示: 软件测试作为一项工作,

光环国际PMP:项目经理提高工作效率的方法

有人会问:为什么我努力善用每分每秒,却永远有做不完的事情?但为什么有的人能够日理万机,却还是精力无限?如何摆脱穷忙又毫无品质的生活? 以下5个聪明工作法,忙碌的项目经理们,请看过来. 01 每天最多做三件事 请拿出你落落长的待办清单,圈出最重要的1-3件事,然后给自己一天的时间,卯足全力解决它!你不需要因为还有很多事要做而焦虑,只需要专注今天.当下.以及最重要的问题. 传统时间管理思维容易让人陷入与时间赛跑的恶性循环,成为想在最短时间内做最多事的「急迫性偏执狂」,但如果把时间看成是一个罐子,重要

linux中添加常用应用程序的桌面图标

在网上随处可以找到怎么样把应用程序的图标放到桌面上,我刚用ubuntu时也是按照网上的做法,一步一步的做的,现将网上的做法复制下来: 桌面配置文件简述\label{sec:desktop file} 一个基本的桌面配置文件是这样的: [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE Exec=/home/tom/ide/eclipse/eclipse Icon=/home/tom/ide/eclipse/eclipse