网站大量收购独家精品文档,联系QQ:2885784924

C语言编程自我总结的.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言编程自我总结的

编译器选择8级优化时,可能会出现错误。刚写好的程序,建议先用0级优化看能否正常运行,再用更高的优化等级进行优化。 a、写中断程序一定要用using语句指定寄存器组。第1、2、3组都可以,不能是0 ??b、51单片机的中断有两个优先级。一个中断不会打断另一个相同优先级的中断。这样相同级别中断可以使用同一个组。比如:低优先级的中断函数都用 using 1,高优先级的中断都用 using 2 。这样不会冲突。main() { unsigned char i; for (i = 2; i=0; i--) { ????printf(%d,i); ??} } C51忌讳绝对定位只要定义变量和变量的作用域,编译器就把一个固定地址给这个变量。手把手教你写程序 内容:从最简单的程序入手,手把手教你写程序,让同学们拿到一个复杂的程序或者任务,能快速找到切入点,写出程序,再在此基础上优化程序。当拿到一个单片机任务时,不要急于动手写程序,先仔细分析它的以下几个点: 1、它要单片机整体实现什么功能 2、功能细分(模块化),先干什么,再干什么,最后干什么 3、画初步流程图,(把几个模块画出即可) 4、模块之间的分析:一个模块到另一个模块之间,怎么变换,怎么连接(优化流程图) 5、单个模块分析:每个模块要做什么(流程图细化) 6、所有模块结合连接,细化所有流程图 7、分析单个模块每步要用到的方法或者指令 8、总流程图定型 9、纸上写程序,对照流程图分析其可行性,若不可行则返回 10、上机调试,加注释 以上十步,缺一不可(小程序外) 切记:流程图的确定很重要,需反复修改 大忌:拿到任务,不仔细分析就写程序。即使是小程序,我们也要养成良好的编程习惯,不要一味的追求结果。写小程序可能比别人快,若是大程序,一旦出现思维混乱,或者出现程序调试不出结果,那么你花在调试上的时间,要比别人的多。???????????!!!!!!磨刀不误砍柴工!!!!!! 程序的优化:属于后期工作,只有调试出来后,才去优化,如果一开始优化和写程序同时进行,一是加重你的思考量,二是出现问题无从下手。无疑增加了写程序的难度。对于一个初学者,写一个程序,本身头脑就处于紧张的状态,思考的问题就很多,如果此时把优化程序也考虑进去,你脑袋的负荷无疑加重,若你头脑精明,你可以把优化的地方,先在纸上记下来,等到调试结果正常,再把你想到的,优化的地方加进去。如果在中断程序中改变了多字节类型的变量,那么中断程序以外的程序中(主程序,子函数)读写前要关中断,读写后再开中断。 举一反三: 其他的数据类型也可能有这种影响。例如:长整型、浮点型。 unsigned?int?ms_counter;?????????????????????? void?T0() {??????? ????//定时器程序每100毫秒中断一次,程序略????? ????if?(ms_counter1000)?ms_counter++; } void?main(void) { //初始化定时器程序每100毫秒中断一次,程序略??????????????????????????? unsigned?char?tt; ????ms_counter=0; ????tt=0;//用tt控制只响一次 ????while(1) ????{ ????????if?(ms_counter400) ????????{ ????????????if?(tt==0) ????????????{ ????????????tt=1; ????????????Sound_on(); ????????????} ????????} ????????else ????????{ ????????????Sound_off(); ????????}??? ????//其他程序?? ????} }? static int a; //定义性声明,需要时,直接使用变量a即可 a = 0x01; static int funA(int a, int b); //声明,且static不起作用 int funA(int a ,int b) //定义,即使funA有static关键字修饰,但由于static不能单独使用,//故funA仍为外部函数。 { …… } extern对变量进行声明时,如没有初始化,则为引用性声明,不含定义,如需使用此变量,需要进行定义。例如: extern int a; //引用性声明,不含定义 extern int a = 0x01; //定义性声明,需要时,直接使用变量a即可 int a; //定义 extern对函数进行声明时,如没有函数体,则为引用性声明,不含定义。 extern int funB(int a ,int b); //引用性声明,

文档评论(0)

ayangjiayu3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档