c语言高效编程pdf,C语言高效编程的四大绝招
编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。
第一招:以空间换时间
计算机程序中的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值:
方法A:通常的办法
_NOBR> _CODE>#define LEN 32
char string1 [LEN];
memset (string1,0,LEN);
strcpy (string1,"This is a example!!");_CODE>
_NOBR>
方法B:
_NOBR> _CODE>const char string2[LEN] ="This is a example!";
char * cp;
cp = string2 ;_CODE>
_NOBR>
使用的时候可以直接用指针来操作。
从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于灵活性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的灵活性;如果采用方法B,则需要预存许多字符串,虽然占用了大量的内存,但是获得了程序执行的高效率。
如果系统的实时性要求很高,内存还有一些,那我推荐你使用该招数。该招数的变招--使用宏函数而不是函数。举例如下:
方法C:
_NOBR> _CODE>#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);_CODE>
_NOBR>
C语言高效编程的四大绝招.doc
下载Word文档到电脑,方便收藏和打印[全文共817字]
编辑推荐:
下载Word文档
c语言高效编程pdf,C语言高效编程的四大绝招相关推荐
- 轻松学c语言编程.pdf等,轻松学编程:轻松学C语言编程 PDF
资源名称:轻松学编程:轻松学C语言编程 PDF <轻松学编程:轻松学C语言编程>从初学者的角度出发,以通俗易懂的语言.丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识. ...
- 汇编c语言混合编程pdf,C语言及汇编语言混合编程的方法.pdf
维普资讯 1993矩 化 工 电 子 计 算 第 2期 C语言与汇编语言混合编程的方法 f/1) (南京犬李葛于如丽顶吾学系) 摘 要 本文通过实例阐述了当前较为漉行的两种c语盲 (Microsoft ...
- 轻松学c语言编程.pdf等,轻松学编程 轻松学C语言编程pdf
轻松学编程 轻松学C语言编程 内容简介 <轻松学编程:轻松学C语言编程>从初学者的角度出发,以通俗易懂的语言.丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识.全书共1 ...
- c语言成颖pdf,程序设计语言开篇导学.ppt-资源下载在线文库www.lddoc.cn
<程序设计语言>开篇导学.ppt 程序设计语言开篇导学,成颖 教授 博士生导师 南京大学信息管理学院,1.引言,C语言程序设计是计算机相关学科中的一门基础课,也是培养结构化程序设计思想以及 ...
- c++语言教程书本pdf,C++语言基础教程_吕凤翥.pdf
<C ++ 语 言基 础 教 程> 电 子 教 案 吕凤翥 第 1章 C ++ 语言概述 1 . 1 面 向对象程序设计的基本思路 1. 面 向对象的由来和发展 面 向对象的语言更接近于 ...
- c语言终极面试宝典 pdf,C语言终极面试--编程
小程序帮你很好的理解C语言 第三部分:编程题 1.读文件file1.txt的内容(例如): 12 34 56 输出到file2.txt: 56 34 12 #include #include int ...
- c语言混合编程 pdf,C语言与汇编语言混合编程的方法.pdf
C语言与汇编语言混合编程的方法 维普资讯 讫 梅 龄 施 扰 绝 埔 综 勿 穗 直 触 搔 拌 橱 悬 邱 舟 絮 颈 茬 辞 乏 味 绞 涡 菊 黄 宜 悄 条 搬 悄 俱 泼 洋 醚 檀 测 易 ...
- 马秀丽C语言程序设计答案pdf,C语言程序设计清华大学马秀丽刘志妩科后习题9答案.doc...
C语言程序设计清华大学马秀丽刘志妩科后习题9答案 习 题 9 二 编程题 main(){ int n,*a,i,j,t=0; scanf("%d",&n); for(i=0 ...
- c语言深度解剖 pdf,c语言深度解剖(解密).pdf.pdf
c语言深度解剖(解密).pdf.pdf 还剩 130页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: * Str ...
最新文章
- 重磅 |“金砖”电商报告:5年后金砖五国网络零售将超3万亿美元
- sersync+rsync同步
- 假防病毒软件从电脑移植到了 Android 平台
- 用Java求s=a+aa+aaa+.....+aaa...a的值
- Vue中无法更改element ui组件样式问题
- cloud 调用列表并返回数据操作代码
- Mac技巧:如何使用macOS Big Sur中“通知中心”的小组件?
- 从金蝶k3到金税盘_金蝶K3操作流程(全篇)
- 费曼:“只要我不能创造的,我就还不理解”
- Web服务器(Apache)与Servlet容器(Tomcat)
- 畅想物联网未来 | 百度云天工智能物联网沙龙圆满落幕
- swiper使用教程
- css音量调节,CSS3 音量调节旋钮
- ClickOnce介绍
- idea打开项目,项目(project)栏不显示项目项目名和项目结构
- Intellij IDEA的永久破解网站
- Java程序设计基础【10】
- 【pandas】教程:2-读写表格数据
- 炫龙毁灭者KP2笔记本U盘重装系统方法图文详细教学
- Revit学习笔记004--极客BIMRevit二次开发方法收集
热门文章
- 普适计算机的应用领域有哪些,2017年度计算机科学各领域热点词汇
- php 实现两变量值对换,PHP互换两个变量值的方法(不用第三变量)
- 某学校新买了一批计算机,2020年度初中信息技术考试选择题.doc
- java pollfirst_Java BlockingDeque pollFirst()用法及代码示例
- vue ---- 组件
- javaSE----学习路线
- electron 打开调试_构建基于 iOS 模拟器的前端调试方案
- 定时器精度对性能的影响_Comet CAA-500天线分析仪 | 高精度模拟十字针同时显示SWR和阻抗...
- Mysql允许root用户远程访问
- php password_hash和password_verify