Chinaunix
标题:
结构体的函数指针,每次使用的时候有没有开销?
[打印本页]
作者:
peidright
时间:
2010-02-19 17:39
标题:
结构体的函数指针,每次使用的时候有没有开销?
本帖最后由 peidright 于 2010-02-19 17:47 编辑
struct test{
int (*compare)();
}*test1;
在另外一个函数里面,compare要频繁被调用
我不知道编译器对这有没有优化处理,
是:
for(;; ){
test1->compare();
}好呢?
还是申请一个函数指针零食变量:
int (*compare)();
compare = test1->compare;
然后
for(;; ){
compare();这样好呢?
}
作者:
cjaizss
时间:
2010-02-19 17:45
本帖最后由 cjaizss 于 2010-02-19 17:47 编辑
这些东西,交给编译器吧。
为什么大家都不相信编译器呢?我宁可相信编译器,也不相信我自己
作者:
gussing
时间:
2010-02-19 18:54
没有区别
作者:
xyfree
时间:
2010-02-19 19:39
编译器会不会优化很难说~
但是函数的地址会被放进cache
执行的时候其实并没有那么频繁地访存
所以执行起来,差别还是有的,不过应该不到一个数量级
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2