1 / 7
文档名称:

C语言高效编程技巧.doc

格式:doc   大小:26KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言高效编程技巧.doc

上传人:mh900965 2018/3/12 文件大小:26 KB

下载得到文件列表

C语言高效编程技巧.doc

文档介绍

文档介绍:C语言高效编程技巧
来源:电子工程师笔记作者:疯子海时间:2006-03-13 发布人:lily
编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。
第1招:以空间换时间
计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招——以空间换时间。
例如:字符串的赋值。
方法A,通常的办法:
#define LEN 32
char string1 [LEN];
memset (string1,0,LEN);
strcpy (string1,“This is a example!!”);
方法B:
const char string2[LEN] =“This is a example!”;
char * cp;
cp = string2 ;
(使用的时候可以直接用指针来操作。)
从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于灵活性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的灵活性;如果采用方法B,则需要预存许多字符串,虽然占用了大量的内存,但是获得了程序执行的高效率。
如果系统的实时性要求很高,内存还有一些,那我推荐你使用该招数。
该招数的变招——使用宏函数而不是函数。举例如下:
方法C:
#define bwMCDR2_ADDRESS 4
#define bsMCDR2_ADDRESS 17
int BIT_MASK(int __bf)
{
return ((1U << (bw ## __bf)) - 1) << (bs ## __bf);
}
void SET_BITS(int __dst, int __bf, int __val)
{
__dst = ((__dst) & ~(BIT_MASK(__bf))) | \
(((__val) << (bs ## __bf)) & (BIT_MASK(__bf)))}
)
SET_BITS(MCDR2, MCDR2_ADDRESS, RegisterNumber);
方法D:
#define bwMCDR2_ADDRESS 4
#define bsMCDR2_ADDRESS 17
#define bmMCDR2_ADDRESS BIT_MASK(MCDR2_ADDRESS)
#define BIT_MASK(__bf) (((1U<<(bw ## __bf))-1)<< (bs ## __bf))
#define SET_BITS(__dst, __bf, __val) \
((__dst) = ((__dst) & ~(BIT_MASK(__bf))) | \
(((__
val) << (bs ## __bf)) & (BIT_MASK(__bf))))
SET_BITS(MCDR2, MCDR2_ADDRESS, RegisterNumber);
函数和宏函数的区别就在于,宏函数占用了大量的空间,而函数占用了时间。大家要知道的是,函数调用是要使用系统的栈来保存

最近更新

2024年福建福州市仓山区市场监督管理局招聘10.. 274页

2024年第二季度重庆巫溪县事业单位招聘拟聘用.. 286页

2024年苏州信息职业技术学院单招职业适应性测.. 56页

2024年西宁城市职业技术学院单招职业适应性测.. 52页

2024年贵州中烟工业贵阳卷烟厂招聘20人历年高.. 276页

2024年贵州兴仁县事业单位招聘144人历年高频难.. 285页

利用医学文献检索工具进行心理学研究与咨询服.. 28页

2024年贵州毕节市七星关区新闻宣传中心招聘10.. 282页

2024年贵州毕节金沙经济开发区招聘10人历年高.. 274页

利用冷沉淀检测血液肿瘤标志物的研究进展 26页

2024年贵州省南明区劳动人事争议仲裁院招聘历.. 272页

2024年贵州省平塘县事业单位招聘14人历年高频.. 87页

2024年贵州省毕节市七星关区第三批招聘事业单.. 90页

2024年贵州省毕节市赫章县事业单位招聘202人历.. 279页

2024年贵州省独山县事业单位招聘紧缺人才35人.. 88页

2024年贵州省绥阳县事业单位招聘214人历年高频.. 89页

2024年辽宁现代服务职业技术学院单招职业适应.. 54页

2024年郑州商贸旅游职业学院单招职业适应性测.. 55页

2024年郴州职业技术学院单招职业适应性测试题.. 57页

2024年重庆建筑工程职业学院单招职业适应性测.. 56页

2024年锡林郭勒职业学院单招职业适应性测试题.. 55页

2024年长沙职业技术学院单招职业适应性测试题.. 57页

2024年陕西邮电职业技术学院单招职业适应性测.. 59页

2024年马鞍山职业技术学院单招职业适应性测试.. 55页

创新辉煌中国航天事业的跨越发展和美好未来 24页

妊娠合并精神病护理ppt 24页

数字乡村试点方案 3页

消防工程监理评估报告范本 4页

WS T 496-2017《临床实验室质量指标》 7页

提速道岔的三种状态及其电气参数 7页