C语言辅导-C语言高效编程的的四招技巧.docx

上传人:大米 文档编号:563929121 上传时间:2023-08-08 格式:DOCX 页数:5 大小:13.86KB
返回 下载 相关 举报
C语言辅导-C语言高效编程的的四招技巧.docx_第1页
第1页 / 共5页
C语言辅导-C语言高效编程的的四招技巧.docx_第2页
第2页 / 共5页
C语言辅导-C语言高效编程的的四招技巧.docx_第3页
第3页 / 共5页
C语言辅导-C语言高效编程的的四招技巧.docx_第4页
第4页 / 共5页
C语言辅导-C语言高效编程的的四招技巧.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言辅导-C语言高效编程的的四招技巧.docx》由会员分享,可在线阅读,更多相关《C语言辅导-C语言高效编程的的四招技巧.docx(5页珍藏版)》请在金锄头文库上搜索。

1、 C语言辅导:C语言高效编程的的四招技巧编写高效简洁的C语言代码,是很多软件工程师追求的目标。本文就工作中的一些体会和阅历做相关的阐述,不对的地方请各位指教。第一招:以空间换时间计算机程序中的冲突是空间和时间的冲突,那么,从这个角度动身逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招-以空间换时间。例如:字符串的赋值。方法A:通常的方法:#define LEN 32char string1 LEN;memset (string1,0,LEN);strcpy (string1,“This is a example!“);方法B:const char string2LEN =“This i

2、s a example!“;char * cp;cp = string2 ;使用的时候可以直接用指针来操作。从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于敏捷性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的敏捷性;假如采纳方法B,则需要预存很多字符串,虽然占用了大量的内存,但是获得了程序执行的高效率。假如系统的实时性要求很高,内存还有一些,那我推举你使用该招数。该招数的变招-使用宏函数而不是函数。举例如下:方法C:#define bwMCDR2_ADDRESS 4#define bsMCD

3、R2_ADDRESS 17int BIT_MASK(int _bf)return (1U 3;J = 456 - (456 4 4);在字面上似乎H比G麻烦了好多,但是,认真查看产生的汇编代码就会明白,方法G调用了根本的取模函数和除法函数,既有函数调用,还有许多汇编代码和存放器参加运算;而方法H则仅仅是几句相关的汇编,代码更简洁,效率更高。固然,由于编译器的不同,可能效率的差距不大,但是,以我目前遇到的MS C ,ARM C 来看,效率的差距还是不小。相关汇编代码就不在这里列举了。运用这招需要留意的是,由于CPU的不同而产生的问题。比方说,在PC上用这招编写的程序,并在PC上调试通过,在移植到

4、一个16位机平台上的时候,可能会产生代码隐患。所以只有在肯定技术进阶的根底下才可以使用这招。第四招:汇编嵌入高效C语言编程的必杀技,第四招嵌入汇编。“在熟识汇编语言的人眼里,C语言编写的程序都是垃圾“。这种说法虽然偏激了一些,但是却有它的道理。汇编语言是效率的计算机语言,但是,不行能靠着它来写一个操作系统吧?所以,为了获得程序的高效率,我们只好采纳变通的方法 -嵌入汇编,混合编程。举例如下,将数组一赋值给数组二,要求每一字节都相符。char string11024,string21024;方法Iint I;for (I =0 ;I1024;I+)*(string2 + I) = *(strin

5、g1 + I)方法J#ifdef _PC_int I;for (I =0 ;I1024;I+)*(string2 + I) = *(string1 + I);#else#ifdef _ARM_asmMOV R0,string1MOV R1,string2MOV R2,#0loop:LDMIA R0!, R3-R11STMIA R1!, R3-R11ADD R2,R2,#8CMP R2, #400BNE loop#endif方法I是最常见的方法,使用了1024次循环;方法J则依据平台不同做了区分,在ARM平台下,用嵌入汇编仅用128次循环就完成了同样的操作。这里有朋友会说,为什么不用标准的内存拷贝函数呢?这是由于在源数据里可能含有数据为0的字节,这样的话,标准库函数会提前完毕而不会完成我们要求的操作。这个例程典型应用于LCD数据的拷贝过程。依据不同的CPU,娴熟使用相应的嵌入汇编,可以大大提高程序执行的效率。虽然是必杀技,但是假如轻易使用会付出沉重的代价。这是由于,使用了嵌入汇编,便限制了程序的可移植性,使程序在不同平台移植的过程中,卧虎藏龙,险象环生!同时该招数也与现代软件工程的思想相违反,只有在迫不得已的状况下才可以采纳。切记,切记。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号