考试网 >> IT认证 >> 等级 >> 等级动态 >> 汇编语言教程之七

汇编语言教程之七

发布时间:2006-07-25 11:56     点击:
分页:上一页  1 [2] 3 4 5 6 7 8 9 10  下一页  后10页



// 程序段1(改进1)



int gaussianSum(){

 

int i, j=0;

 

for(i=1; i<100; i++) j+=i;



 

return j;

}



多数(但确实不是全部)编译器也不会把它改为



// 程序段1(改进2)



inline int gaussianSum(){

 

return 5050;

}



这两个修改版本都不同于原先程序的语义。首先我们看到,让i从0开始是没有必要的,因为j+=i时,i=0不会做任何有用的事情;然后是,实际上没有必要每一次都计算1+...+100的和——它可以被预先计算,并在需要的时候返回。



这个例子也许并不恰当(估计没人会写出最初版本那样的代码),但这种实践在程序设计中确实可能出现。我们把改进2称为编译时表达式预先计算,而把改进1成为循环强度削减



然而,一些新的编译器的确会进行这两种优化。不过别慌,看看下面的代码:



// 程序段2

int

GetFactorial(

int k){

 

int i, j=1;

 

if((k<0) (k>=10))

return -1;
分页:上一页  1 [2] 3 4 5 6 7 8 9 10  下一页  后10页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有