社区
C++ 语言
帖子详情
你认为下面的代码段哪个的效率会更高一些??
fcf128
2004-10-04 12:52:38
你认为下面的代码段哪个的效率会更高一些??
void SS( CString &info )
{
char t[6]={0} ;
for( int i=0 ; i<6 && (t[i]=info[i]) ; i++) ;
// ...
}
上面的for语句和下面这句哪个效率会更高一些?请说明理由。。
for( int i=0 ; i<6 ; i++) t[i]=info[i];
或者你有更好的更有效率的做法?请给出..
...全文
174
12
打赏
收藏
你认为下面的代码段哪个的效率会更高一些??
你认为下面的代码段哪个的效率会更高一些?? void SS( CString &info ) { char t[6]={0} ; for( int i=0 ; i<6 && (t[i]=info[i]) ; i++) ; // ... } 上面的for语句和下面这句哪个效率会更高一些?请说明理由。。 for( int i=0 ; i<6 ; i++) t[i]=info[i]; 或者你有更好的更有效率的做法?请给出..
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fcf128
2004-10-05
打赏
举报
回复
呵呵,漏了点东西
inline bool AA( const char &a ) const
{
return isalnum(a) || a='@' ; // 这个能通过编译?
}
fcf128
2004-10-05
打赏
举报
回复
谢谢 bluejugar(我爱小艳)
双杯献酒
2004-10-04
打赏
举报
回复
void SS( CString &info )
{
char t[6]={0} ;
for( int i=0 ; i<6 && (t[i]=info[i]) ; i++) ;
// ...
}
应该将 char t[6] = {0};
修改成 TCHAR t[6];
(1) "= {0}" 没有必要,浪费CPU
(2)char在UNICODE下会出错。
双杯献酒
2004-10-04
打赏
举报
回复
inline AA( const char &a ) const
{
return isalnum(a) || a='@' ; // 这个能通过编译?
}
bluejugar
2004-10-04
打赏
举报
回复
"你认为下面的代码段哪个的效率会更高一些??
void SS( CString &info )
{
char t[6]={0} ;
for( int i=0 ; i<6 && (t[i]=info[i]) ; i++) ;
// ...
}
上面的for语句和下面这句哪个效率会更高一些?请说明理由。。
for( int i=0 ; i<6 ; i++) t[i]=info[i];"
这两者的效率是大不一样的.你可以注意到,"for( int i=0 ; i<6 && (t[i]=info[i]) ; i++) ;"比"for( int i=0 ; i<6 ; i++) t[i]=info[i];"多了一个"&&"操作,所以.....
而这是没有必要的,你可以用写成:
for( int i=0 ; t[i]=info[i], i<6 ; i++);
这样二者就真正等效了.
fcf128
2004-10-04
打赏
举报
回复
当然应该考虑到 生成的代码
fcf128
2004-10-04
打赏
举报
回复
const char a ; // char == 1byte
const char &a; // char &==4byte
实现能达到同样的效率?
Dong
2004-10-04
打赏
举报
回复
对于第一个问题(for)有没有更高效的办法??
----------------------------------------------
应该没有了!不过如果你的程序很大的话,结构和调用处理是效率就提高了。没有必要在这些本来很高效的地方钻牛角尖!
Dong
2004-10-04
打赏
举报
回复
还是一样,
本来const char a需要对临时变量a复制,但因为是inline(内联)的,所以函数压栈的开销就不存在的,所以就一样的了
不知楼主有什么想法??你觉得那个高呢?
fcf128
2004-10-04
打赏
举报
回复
对于第一个问题(for)有没有更高效的办法??
fcf128
2004-10-04
打赏
举报
回复
对于下面的两个呢?
inline AA( const char a ) const
{
return isalnum(a) || a='@' ;
}
inline AA( const char &a ) const
{
return isalnum(a) || a='@' ;
}
哪个效率会更高一些?请说明理由。。
Dong
2004-10-04
打赏
举报
回复
一样的,因为两条语句对t[i]=info[i];的执行顺序和次数都一样。而且开销都一样大!
都是先初始化i,判断i是否小于6,如果小于6,那么执行t[i]=info[i];,然后执行i++
其实表达不一样而已,但从执行命令和分配资源都一样的。
如何编写
高
质量
代码
软件研发项目、产品等均离不开好的
代码
,
高
质量的
代码
对产品研发、管理起着至关重要的作用。 本课程较系统的介绍了
高
质量
代码
的特点,并从项目研发角度,结合编程常用知识点,如函数、 变量、参数、控制语句、类的...
为什么CPU流水线
会
提
高
代码
执行
效率
?
关注、星标公众号,不错过精彩内容素材来源:网络编辑整理:strongerHuang为什么有些CPU的主频
更
低,但运算
效率
却
更
高
呢?比如:51单片机30M主频,STM32单片机20M主频,...
灵魂拷问:用移位来代替除法运算真的
效率
高
吗?Java 编译器到底有没有做除法优化?
引入 我们知道,相比移位运算,除法运算的开销比较大。 在 Leetcode 做题的时候,当除数是 2的 n 次幂时,大家通常
会
用移位来代替除法运算,并且希望这样能够提升运算
效率
——这似乎已成为了算法题解中的“标配”。 那么问题来了,使用移位操作代替乘除运算,真的
效率
更
高
吗? 对于这个灵魂拷问,本文分别以 C++ / Java 为例,从汇编层面带你一探究竟。 C++ 编译器对除法的优化 在 Optimizations in C++ Compilers [中文译文在此] 这篇文章中,作者建议不要在
代码
中用
[c]C语言提
高
效率
和减少
代码
size的方法
C语言提
高
代码
效率
的几种方法 一
段
完美的
代码
不仅在于找到一个给定的问题的解决方案,但在它的简单性,有效性,紧凑性和
效率
(内存)。设计的
代码
比实际执行
更
难。因此,每一个程序员当用C语言开发时,都应该保持这些基本的东西在头脑中。本文向你介绍规范你的C
代码
的5种方法。 1、在可能的情况下使用typedef替代macro.当然有时候你无法避免macro,但是typedef
更
好。 type
C语言提
高
代码
效率
的几种方法
一
段
完美的
代码
不仅在于找到一个给定的问题的解决方案,但在它的简单性,有效性,紧凑性和
效率
(内存)。设计的
代码
比实际执行
更
难。因此,每一个程序员当用C语言开发时,都应该保持这些基本的东西在头脑中。本文向你介绍规范你的C
代码
的几种方法。 1、在可能的情况下使用typedef替代macro.当然有时候你无法避免macro,但是typedef
更
好。 typedef int* INT_PTR; IN
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章