函数优化

[复制链接]
 楼主| kangzj 发表于 2012-10-10 20:34 | 显示全部楼层 |阅读模式
谁比较熟悉啊,给我讲讲
zwll 发表于 2012-10-10 20:35 | 显示全部楼层
Inline函数

在 C++ 中,关键字 Inline 可以被加入到任何函数的声明中。 这个关键字请求编译器用函数内部的代码替换所有对于指出的函数的调用。
renyaq 发表于 2012-10-10 20:37 | 显示全部楼层
这样做在两个方面快于函数调用:第一,省去了调用指令需要的执行时间;第二,省去了传递变元和传递过程需要的时间。
dingy 发表于 2012-10-10 20:37 | 显示全部楼层
但是使用这种方法在优化程序速度的同时,程序长度变大了,因此需要更多的 ROM 。
dingy 发表于 2012-10-10 22:45 | 显示全部楼层
使用这种优化在 Inline 函数频繁调用并且只包含几行代码的时候是最有效的。
chuxh 发表于 2012-10-10 22:46 | 显示全部楼层
不定义不使用的返回值
houcs 发表于 2012-10-10 22:48 | 显示全部楼层
不定义不使用的返回值
chuxh 发表于 2012-10-10 22:46
对,函数定义并不知道函数返回值是否被使用,假如返回值从来不会被用到,应该使用 void 来明确声明函数不返回任何值。
liuzaiy 发表于 2012-10-10 22:49 | 显示全部楼层
减少函数调用参数
yinxiangh 发表于 2012-10-10 23:00 | 显示全部楼层
嗯,使用 全局变量 比函数传递参数更加有效率。这样做去除了函数调用参数入栈和函数完成后参数出栈所需要的时间。
yinxiangh 发表于 2012-10-10 23:01 | 显示全部楼层
然而决定使用全局变量会影响程序的模块化和重入,故要慎重使用。
morrisk 发表于 2012-10-10 23:05 | 显示全部楼层
所有函数都应该有原型定义
morrisk 发表于 2012-10-10 23:05 | 显示全部楼层
一般来说,所有函数都应该有原型定义。原型定义可以传达给编译器更多的可能用于优化的信息。
小小猫咪 发表于 2012-10-10 23:07 | 显示全部楼层
尽可能使用常量(const)
chuxh 发表于 2012-10-10 23:08 | 显示全部楼层
嗯,C++ 标准规定,如果一个 const 声明的对象的地址不被获取,允许编译器不对它分配储存空间。
dingy 发表于 2012-10-10 23:10 | 显示全部楼层
是啊,这样可以使代码更有效率,而且可以生成更好的代码。
zyf部长 发表于 2012-10-10 23:11 | 显示全部楼层
把本地函数声明为静态的(static)
zyf部长 发表于 2012-10-10 23:11 | 显示全部楼层
如果一个函数只在实现它的文件中被使用,把它声明为静态的 (static)以强制使用内部连接。否则,默认的情况下会把函数定义为外部连接。
zyf部长 发表于 2012-10-10 23:12 | 显示全部楼层
如果一个函数只在实现它的文件中被使用,把它声明为静态的 (static)以强制使用内部连接。否则,默认的情况下会把函数定义为外部连接。
小小猫咪 发表于 2012-10-10 23:13 | 显示全部楼层
是啊,这样可能会影响某些编译器的优化——比如,自动内联。
 楼主| kangzj 发表于 2012-10-10 23:13 | 显示全部楼层
大家知道的真多,结贴了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

672

主题

7007

帖子

2

粉丝
快速回复 返回顶部 返回列表