微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 四大绝招助你编写高效简洁的C语言代码

四大绝招助你编写高效简洁的C语言代码

时间:01-11 来源:互联网 点击:

代码就不在这里列举了。
运用这招需要注意的是,因为CPU的不同而产生的问题。比如说,在PC上用这招编写的程序,并在PC上调试通过,在移植到一个16位机平台上的时候,可能会产生代码隐患。所以只有在一定技术进阶的基础下才可以使用这招。
第四招:汇编嵌入
高效C语言编程的必杀技,第四招——嵌入汇编。"在熟悉汇编语言的人眼里,C语言编写的程序都是垃圾"。这种说法虽然偏激了一些,但是却有它的道理。汇编语言是效率最高的计算机语言,但是,不可能靠着它来写一个操作系统吧?所以,为了获得程序的高效率,我们只好采用变通的方法--嵌入汇编,混合编程。举例如下,将数组一赋值给数组二,要求每一字节都相符。

char string1[1024],string2[1024]; 方法I int I; for (I =0 ;I1024;I++)  *(string2 + I) = *(string1 + I) 方法J #ifdef _PC_ int I; for (I =0 ;I1024;I++) *(string2 + I) = *(string1 + I); #else #ifdef _arm_ __asm {  MOV R0,string1  MOV R1,string2  MOV R2,#0 loop:  LDMIA R0!, [R3-R11]  STMIA R1!, [R3-R11]  ADD R2,R2,#8  CMP R2, #400  BNE loop } #endif

方法I是最常见的方法,使用了1024次循环;方法J则根据平台不同做了区分,在arm平台下,用嵌入汇编仅用128次循环就完成了同样的操作。这里有朋友会说,为什么不用标准的内存拷贝函数呢?这是因为在源数据里可能含有数据为0的字节,这样的话,标准库函数会提前结束而不会完成我们要求的操作。这个例程典型应用于LCD数据的拷贝过程。根据不同的CPU,熟练使用相应的嵌入汇编,可以大大提高程序执行的效率。
虽然是必杀技,但是如果轻易使用会付出惨重的代价。这是因为,使用了嵌入汇编,便限制了程序的可移植性,使程序在不同平台移植的过程中,卧虎藏龙,险象环生!同时该招数也与现代软件工程的思想相违背,只有在迫不得已的情况下才可以采用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top