公司动态

公司动态图片

文字:[大][中][小] 2019-05-10 01:17     浏览次数:    

  动态图制作机编程根基上不消思量空间的占用、内存的占用的问题,最终目标就是实现功效就能够了。

  对付单片机来说就判然分歧了,正常的单片机的Flash和Ram的资本是以KB来权衡的,可想而知,单片

  机的资本是少得可怜,为此咱们必需设法想法榨尽其所有资本,将它的机能阐扬到最佳,法式设想时必需

  可以大概利用字符型(char)界说的变量,公司动态图片就不要利用整型(int)变量来界说;可以大概利用整型变量界说的变

  量就不要用长整型(longint),能晦气用浮点型(float)变量就不要利用浮点型变量。当然,在界说变

  量后不要跨越变量的感化范畴,若是跨越变量的范畴赋值,C编译器并不报错,但法式运转成果却错了,

  凡是利用自加、自减指令和复合赋值表达式(如a-=1及a+=1等)都可以大概天生高品质的

  法式代码,编译器凡是都可以大概天生inc和dec之类的指令,而利用a=a+1或a=a-1之类

  申明:位操作只要一个指令周期即可完成,而大部门的C编译器的“%”运算均是挪用子法式来

  完成,代码长、施行速率慢。凡是,只需求是求2n方的余数,均可利用位操作的方式来取代。

  申明:在有内置硬件乘法器的单片机中(如51系列),乘法运算比求平方运算快得多,由于浮点数

  的求平方是通过挪用子法式来实现的,乘法运算的子法式比平方运算的子法式代码短,施行速率快。

  申明:凡是若是必要乘以或除以2n,都能够用移位的方式取代。若是乘以2n,都能够天生左移

  的代码,而乘以其它的整数或除以任何数,均挪用乘除办法法式。用移位的方式获得代码比挪用乘除办法

  法式天生的代码效率高。现实上,只需是乘以或除以一个整数,均能够用移位的方式获得成果。如N=M*9

  申明:两个函数的延时结果类似,但险些所有的C编译对后一种函数天生的代码均比前一种代码少1~3

  个字节,由于险些所有的MCU均无为0转移的指令,采用后一种体例可以大概天生这类指令。

  申明:利用dowhile轮回编译后天生的代码的长度短于while轮回。

  申明:在声明局部变量的时候能够利用register环节字。这就使得编译器把变量放入一个多用处的寄放

  器中,而不是在仓库中,正当利用这种方式能够提高施行速率。函数挪用越是屡次,越是可能提高代码的

  volatile老是与优化相关,编译器有一种手艺叫做数据流阐发,阐发法式中的变量在哪里赋值、在

  哪里利用、在哪里失效,阐发成果能够用于常量归并,常量传布等优化,进一步能够死代码消弭。正常来

  a)中缀办事函数中点窜的供其它法式检测的变量必要加volatile(参考本书高级尝试法式)

  c)存储器映照的硬件寄放器凡是也要加volatile申明,由于每次对它的读写都可能由分歧意思

  总之,volatile环节字是一品种型润色符,用它声明的类型变量暗示能够被某些编译器未知的要素

  更改,好比:操作体系、硬件或者其它线程等。碰到这个环节字声明的变量,编译器对拜候该变量的代码

  在数据校验实战傍边,CRC16轮回冗余校验实在另有一种方式是查表法,公司动态图片通过查表能够愈加速得到

  校验值,效率更高,当校验数据量大的时候,利用查表法劣势愈加较着,不外独一的错误真理是占用大量的空

  若是体系要求及时性比力强,在CRC16轮回冗余校验傍边,保举利用查表法,以空间换时间。

  起首不保举所有函数改为宏函数,免得呈现不需要的错误。可是一些根基功效的函数很有需要利用宏

  申明:函数和宏函数的区别就在于,宏函数占用了大量的空间,c语言程序代码而函数占用了时间。大师要晓得的是,函

  数挪用是要利用体系的栈来保留数据的,若是编译器里有栈查抄选项,正常在函数的头会嵌入一些汇编语

  句对以后栈进行查抄;同时,cpu也要在函数挪用时保留和规复以后的现场,进行压栈和弹栈操作,所以,

  函数挪用必要一些cpu时间。而宏函数不具有这个问题。宏函数仅仅作为事后写好的代码嵌入到当出息序,

  不会发生函数挪用,所以仅仅是占用了空间,在屡次挪用统一个宏函数的时候,该征象特别凸起。

  很较着大师城市想到这种方式,可是效率方面并不如意,咱们必要动脑筋,就是采用数学算法处理问题,

  成果很较着,同样的成果分歧的计较方式,运转效率会有大大分歧,所以咱们必要最大限度地通过数

  在很多种环境下,能够用指针运算取代数组索引,如许做每每能发生又快又短的代码。与数组索引相

  比,指针正常能使代码速率更快,占用空间更少。利用多维数组时差别更较着。下面的代码感化是不异的,

  指针方式的长处是,szArrayA的地点装入指针p后,在每次轮回中只要对p增量操作。万博体育平台。在数组索引

  C言语精华第一精华就是指针的利用,第二精华就是强制转换的利用,得本地操纵指针和强制转换不单

  能够供给法式效率,并且使法式愈加之简练,因为强制转换在C言语编程中拥有主要的职位地方,下面将已五

  例子2:在大端模式下(8051系列单片机是大端模式),将数组a[2]转化为无符号16位整型值。狗万ManBetX官网

返回上一步
打印此页