C编程这个elsepython if else用法有误吗?

404 Not Found
404 Not Found
nginx/1.6.0 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
山科大 《单片机的C语言程序设计与运用(第2版)》期末复习题及答案1
下载积分:6000
内容提示:山科大 《单片机的C语言程序设计与运用(第2版)》期末复习题及答案1,程序,第1,复习,山科大,期末复习题,c语言吧,c语言复习题,单片机c语言
文档格式:DOC|
浏览次数:1|
上传日期: 00:38:34|
文档星级:
该用户还上传了这些文档
官方公共微信
下载文档:山科大 《单片机的C语言程序设计与运用(第2版)》期末复习题及答案1.DOC孙述乔(浙江传媒学院 新媒体学院 10级信息管理与信息系统一班& 浙江& 杭州& 310000)
中图分类号:TP315&&& 文献标识码:A&&&&& 文章编号:41-)02-0000-01
摘 要:本文主要总结了如何在C语言编程设计过程中优化编程的方法,同时对有些方法进行举例应用分析。通过总结希望有利于编程过程中改善程序的结构、提高运行效率和可读性,充分发挥出C语言的优势。
关键词:C语言& 编程& 优化& 应用
&&&&&&& 一、前 言&&&&
&&&&&&& C 语言之所以能够成为一种高级编译型程序设计语言,是因为它有很多优点:便于结构化程序设计,库函数功能丰富,功能性和移植性强,运算速度快,编译效率高,可直接实现对系统硬件的操作等。另外,因为C 语言还具有汇编语言的功能,能够很好地操作底层的硬件接口,完善的模块化结构,而这正是软件开发的基本保障,因此它不仅大大缩短了周期,还增加了软件的可读性。尽管C 语言有很多优点,但它也存在一个最大缺点,那就是占用资源较多。因此在用C语言编程是对其方法进行优化不仅可以节省资源,也更利于程序的可读性和效率的提高。
&&&&&&& 二、C语言编程方法优化与应用举例
&&&&&&& (一)数据和变量类型优化[1]&
&&&&&&& 数据类型选择&& 标准C语言提供的数据类型包括整型、浮点、枚举、指针、结构等。编程需要考虑的是为了编译生成的代码小、效率高应该如何选择数据类型。对于整型而言,有signed和unsigned两种,分别称为char, short int , int , long int , enum。然而ANSI C没有准确规定每种类型的大小,这样就会影响程序在两个处理器之间的移植操作。为了避免这种影响,编程时最好是将数据类型按类型定义放在一个头文件中,当移植时只要简单的修改头文件即可:&&&
&&&&&&& 优化定义变量的方法是置成寄存器变量。 尽量避免传递一个变量地址给另一个函数。同时声明多个变量往往优于单独声明变量。如int a,b就会比intb更有效率。
&&&&&&& (二)优化算法和数据结构
&&&&&&& 数据结构的选择要以满足系统硬件的要求作为前提来考虑。以51系列单片机为例,由于51系列是8位机,因此它只能直接处理8位无符号数的运算,而如果要处理其它类型的数据,必须通过额外的算法才可以实现。所以,要尽可能选用无符号的字符类型。
&&&&&&& 在算法的优化上,用较快的二分查找、乱序查找法代替顺序查找法,用快速排序、合并排序或根排序代替插入排序(或冒泡排序法),都可以大大的提高程序的执行效率。
&&&&&&& (三)优化选择语句[2]
&&&&&&& 1.嵌套 if 语句的使用。当 if 结构中要判断的并列条件较多的时候,最好将它们拆分成多个 if 语句结构,然后嵌套在一起,就可以减少不必要的判断。
&&&&&&& 2.嵌套 switch 语句的使用。switch 语句中的 case 很多时,为了减少比较次数,可把大 switch 语句转化为嵌套 switch 语句。把频率较高的 case 标号放在一个 switch 语句中,而发生频率较低的case 标号则放在另一个switch 语句当中。
&&&&&&& 3.给switch 语句中case排序。Switch通常可以使用跳转表或者比较链/树转化成多种算法的代码。 当 switch 用比较链转化时,编译器会产生 if-else-if 嵌套代码同时按顺序比较,当结果匹配时,就跳到满足条件的语句执行。因此根据发生的可能性对 case 的值排序,最有可能的放在第一位就可以使选择过程更合理,从而提高了效率。
&&&&&&& (四)循环过程的优化
&&&&&&& 循环语优化& 对于有些任务不需要循环变量参加运算时,可以将它们放到循环外面,将没有必要执行多次的操作全部集合到一个init的初始化程序中也有利于优化循环语句。
&&&&&&& 优化延时函数&&& 将自加的形式改为自减形式,如:
&&&&&&& 自加的形式
&&&&&&& void delay (void)
&&&&&&& for (j=0;j&1000;j++);}
&&&&&&& 改为自减延时函数:
&&&&&&& void delay (void)
&&&&&&& for (j=1000;j&0;j--);}
&&&&&&& 两个函数的延时效果大致相当,但是几乎所有的C编译对后者生成的代码均比前一种少1~3个字节,因为后一种方式可以产生MCU为0转移所需要的指令。类似的,do&while循环比while循环编译后生成的代码要短
&&&&&&& (五)函数调用优化
&&&&&&& C语言中,调用函数的第一步是传递参数给寄存器或堆栈。当函数的参数很多时,就要调用大量的堆栈空间,开销将会很大。当结构作为函数参数传递的内容时,编译器的第一步操作是把整个结构复制到堆栈,这种情况下堆栈空间的使用会非常大。此外,如果结构作为函数返回值,调用程序会把堆栈空间保留,把结构地址传递给函数同时调用函数,接着把函数返回。最后,调用程序需要再把堆栈空间清除,并把返回的结构拷贝到第二个结构当中。这样代码和堆栈的开销就会非常惊人。因此应禁止传递结构,一般用结构指针替代来避免这种开销,。
&&&&&&& (六)减少运算强度[3]&
&&&&&&& 使用运算量较小(但功能相同)的表达式代替复杂的表达式可以减少运算的强度。如:
&&&&&&& 平方运算&&&& 例如:b=pow(b,2.0)优化为:b=b*b
&&&&&&& 对于单片机(有内置硬件乘法器)而言,乘法运算要远远快于平方运算,因为实现浮点数的平方计算必须调用子程序。同时对于3次方,如:b=pow(b,3.0)改为b=b*b*b,效率的改善会更加显著。
&&&&&&& 求余运算&&& 例如:b%8优化为b=b&7
&&&&&&& b%8的代码长,执行速度较慢是因为对于大部分的C编译器而言,&%&运算必须调用子程序才能完成。然而位操作只要一个指令周期就可以完成。
&&&&&&& 乘除法移位运算&&&& 例如:a=a*4;b=b/4; 改为:a=a&&2;b=b&&2;
&&&&&&& 通常在需要乘、除2n的情况下,用移位的方法代替会减小运算的强度。
&&&&&&& (七)计算表格化[4]
&&&&&&& 在C语言程序中一般不要设计非常复杂的运算,如浮点数的开方等, ,因为这些运算既消耗时间又消费资源。对于这种运算应尽量查表,同时将数据表放在程序存储区,减少程序执行的工作量。另外,使用在线汇编、将常量以及字符串保存在程序存储器中,也有利于程序代码的优化
&&&&&&& 三、结束语
&&&&&&& 以上从多方面探讨了用C语言编程时如何可以实现方法的优化和效率的提高。为了最有效的用C语言编程,应该按照&程序在汇编语言中如何执行&的思想来编程。在编程过程中不断发现、总结、实践C编程的优化方法,这样才能更加突出C语言在功能、结构、可读性、可移植性、可维护性等方面的明显优势
参考文献:
[1]曾红兵.浅谈 8051 单片机编程中 C 语言代码优化[J].湖南冶金职业技术学院学报,2007(9).
[2]浅谈 C 代码优化与运用. 韩芝萍 .《农业网络信息》2009 年第 2 期,
[3]刘朝晖,郑玉墙.用C语言进行DSP软件设计的优化考虑.空军雷达学院学报, 2001 (6).
您可能感兴趣的其他文章
&&站长推荐
&&期刊推荐
&&原创来稿文章
&&网络读者服务
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的邮件地址:
写信给编辑
您的邮件地址:C语言编程练习题绝对经典!_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
13页免费6页免费11页1下载券3页1下载券7页1下载券 11页1下载券20页免费2页免费3页免费2页免费
喜欢此文档的还喜欢10页1下载券60页1下载券52页1下载券165页1下载券20页1下载券
C语言编程练习题绝对经典!|我​用​的​挺​好​的​!​!​!
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢上传时间:
C 中IF判断语句用法及messageBox方法讲解
爱编程 编程视频网
专辑名称:
专辑创建者:
播放次数:15,486
56官方微信
扫一扫发现精彩}

我要回帖

更多关于 sql if else 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信