效率问题

JasonBUG 2008-12-31 04:12:28
下面一段代码

int Calc()
{
return Calc(10);
}
int Calc(int _p1)
{
return Calc(_p1, 314);
}
int Calc(int _p1, int _pi)
{
return (2 * _pi * _p1);
}


我在程序里面条用那个函数,效率最高
谢谢
...全文
114 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuruichen 2009-01-02
  • 打赏
  • 举报
回复
写成预定义的效率最高

#define max(a,b)(a>b?a:b)

这种效率高。
wiowei 2009-01-02
  • 打赏
  • 举报
回复

const int pi = 314;
inline int Calc(int _p1){return 2*_p1*pi;}
funnybunny 2008-12-31
  • 打赏
  • 举报
回复
计算的是周长?呵呵~
boy3017 2008-12-31
  • 打赏
  • 举报
回复
简洁就是美
lnever 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ysuliu 的回复:]
不明白什么问题。。
你要是直接就2*_pi*_p1还调用三个函数干嘛?就像楼上说的,用宏。。
即使不用宏,就直接
int Calc(int _p1, int _pi)
{
return (2 * _pi * _p1);
}
就完了啊。。
不明白上面两个函数是怎么被你想出来的。。

这个问题很诡异~

引用楼主 so927 的帖子:
下面一段代码

C/C++ code
int Calc()
{
return Calc(10);
}
int Calc(int _p1)
{
return Calc(_p1, 314);
}
int Calc(int _p1, i…
[/Quote]

这个说的挺对的,干嘛这么麻烦啊?
ysuliu 2008-12-31
  • 打赏
  • 举报
回复
不明白什么问题。。
你要是直接就2*_pi*_p1还调用三个函数干嘛?就像楼上说的,用宏。。
即使不用宏,就直接
int Calc(int _p1, int _pi)
{
return (2 * _pi * _p1);
}
就完了啊。。
不明白上面两个函数是怎么被你想出来的。。

这个问题很诡异~

[Quote=引用楼主 so927 的帖子:]
下面一段代码

C/C++ code
int Calc()
{
return Calc(10);
}
int Calc(int _p1)
{
return Calc(_p1, 314);
}
int Calc(int _p1, int _pi)
{
return (2 * _pi * _p1);
}



我在程序里面条用那个函数,效率最高
谢谢
[/Quote]
xiaoyisnail 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lbh2001 的回复:]
C/C++ codeintCalc(int_p1,int_pi)
{return(2*_pi*_p1);
}

其他两个相对来说多了其他的函数调用开销

其实效率最高的实现是将其写为宏,这样连函数的调用开销都没有了
[/Quote]

up
或者inline吧
jack_wq 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lbh2001 的回复:]
C/C++ codeintCalc(int_p1,int_pi)
{return(2*_pi*_p1);
}

其他两个相对来说多了其他的函数调用开销

其实效率最高的实现是将其写为宏,这样连函数的调用开销都没有了
[/Quote]
省了函数入栈、出栈的处理时间?
sinux_1983 2008-12-31
  • 打赏
  • 举报
回复
应该写成宏
nullah 2008-12-31
  • 打赏
  • 举报
回复
在函数里面不需要调用其它函数那个效率高
lbh2001 2008-12-31
  • 打赏
  • 举报
回复

int Calc(int _p1, int _pi)
{
return (2 * _pi * _p1);
}


其他两个相对来说多了其他的函数调用开销

其实效率最高的实现是将其写为宏,这样连函数的调用开销都没有了

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧