c语言程序设计个人总结_第1页
c语言程序设计个人总结_第2页
c语言程序设计个人总结_第3页
c语言程序设计个人总结_第4页
c语言程序设计个人总结_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、标准总结示范文本 | Excellent Model Text 资料编码:CYKJ-FW-859编号:_c语言程序设计个人总结编辑:_日期:_单位:_c语言程序设计个人总结用户指南:该总结资料适用于把阶段时间里取得的成绩、存在的问题及得到的经验和教训进行一次全面系统的总结,明确下一步的工作方向,少走弯路,少犯错误,提高工作效益作用。可通过修改使用,也可以直接沿用本模板进行快速编辑。【分享】关于C语言程序设计小结真正的程序设计高手不是语法上的精通而是程序总体架构,算法上的周密。当初大学时都是利用C51写的51单片机的程序,根本就不管程序的可维护性,程序大小,就是一个C文件中包含了全部的函数体。在

2、工作中这是一个完全不能接受的习惯和致命错误。其实C语言的语法真的很简单,很快就能掌握,但是将这简单的语句组织成一个良好的架构那可就是一件很难的事了。最近在工作中编写的程序都是我们总监打好的架构,然后在里面进行添砖加瓦的。看着我们总监写的程序,那简直就是一个神。同样能实现的功能函数,虽然我也能编写,可相比之下我们总监的思想就更加的开阔和先进。现将最近学到的一些方法写下,来提示自己:1.在编写各类单片机功能程序时,不要急于书写,一定要先想出一个很好的结构和方法,虽然你写出来的程序可以正常运行,但是你是否想到了它的可维护性,可阅读性等等一些很重要的因素呢?所以一定要先想出一个很好的架构在来开始编写。

3、2.c文件,和h文件设计的要求。C语言显得非常的自由,但我们在工作中为了程序软件的种种原因,一定要规范自己的写法,这对自己和他人都是有利的。在单片机的程序中,我们应该把一个模块功能建立一个单独的C文件,这一C文件中包含和该模块功能全部相关的函数体,同样把和该C文件相关的常量,表达式等等也单独的建立一个h文件,最好是只让它对应的C文件引用,不要让其它的C文件进行引用,这样很好的体现程序的模块化和内聚性。在对单片机的内部寄存器进行操作的程序,我们应该单独的建立一个文件,只允许MCU内部的寄存器名出现在该文件中,你试想一个,在你的所有文件中这这里出现一个寄存器名,那里出现一个寄存器名,是不是可读性不

4、好,没有实现程序的模块化呢?在程序过程中我们应该把多次用到的变量和常量最好的定义为宏,这样当这些变量 ,常量要更改时,就可以很方便的更改,不用大量的去寻找。在使用文件包含时,一定要注意路径的选择,什么时候用," ",不用出现重复编译的情况,有时重复编译可能编译器没有报错,但是这样明显不好。要学会很好的使用条件编译语句,这对我们的程序很有用,在很多小型的操作系统中,都有硬件裁减的功能选择,这正是利用了条件编译,需要这一功能时我们就定义它,不需要时就不去定义,显得很方便。3.指针的妙用。C语言的特色就在于它的指针。很好的使用指针能让我们的程序更加的有条理性,同样它也是C语言中语

5、法最难的一点了,所以在使用时一定要注意。具体的好处太多了,在这就不在多说了,大家自己体会就能很好的明白了。总之,C语言算是一门很好的语言,我们不仅要学会它的语句,更重要的是要具有好的思想,思想有多深,就决定你能飞多远!史上最全C语言编程知识总结我们是不是在写程序的时候错误很多,就算编译通过了也达不到我们预期的结果。之后自己还找不到错在哪儿。我觉得语言之所以能称之为语言,首先它肯定是一种工具。一种相互交流、相互通信、相互传达之间意图的工具。作为语言那肯定得有自己的语法(比如像表达式,函数,循环,指针)。C语言虽然很强大,但是他也有不少陷阱。所以,写这篇文章有两个目的:一是把C语言一些误用易错的地

6、方总结一下,二是把C语言一些基本语法总结一下。一、总结一些误用易错的知识点1.关于自增自减(即+i,i+)要想给一个数加一或减一我们可以:i += 1;j= 1;而C语言还允许用+和运算符,其实这里有误导,因为+和可以作为前缀和后缀,这样的话他们就有可能改变操作数的值,下面让我们来看看:i = 1;printf("i is %dn",+i); /* prints i is 2 */printf("i is %dn",i); /* prints i is 2 */计算表达式i+的结果是i,但是会引发i随后进行自增:i = 1;printf("i

7、is %dn",i+); /* prints i is 1/ */printf("i is %dn",i); /* prints i is 2 */第一个printf 显示了i自增前的原始值,第二个printf显示了i变化后的新值;当然类似我就不举例了但在同一个表达式中多次使用+和往往很难理解我们看看下面的例子:i = 1;j = 2;k = +i + j+;i,j,k最终值分别是2,3,4而+i是2 j+是2;总结:不管是+i还是i+执行这条语句后i的值都加一了只是(+i)的值加一了而(i+)没变。2.typedef与#define2.1.typedefC语言除

8、了直接使用标准的类型名(如 int char float double)和自己声明的结构体、共用体、指针、枚举类型外,还可以用typedef声明新的类型名来代替现有的类型名。typedef unsigned char u8;typedef unsigned int u16;u8 count;u16 time;typedef structu8 month;u8 day;u16 year;DATE;DATE brithday;总结一下,声明新的类型名的方法:1.先按定义变量的方法写出定义体(如 unsigned int i)2.在变量名换成新的变量名(如将 i换成u16)3.在最前面加上typed

9、ef (typedef unsigned int u16)4.然后用新类型名去定义变量2.2 #define2.1.1不带参数的宏定义#define 标识符 字符串#define PI 3.1415926注意:1.它的作用是在本程序中用指定的标识符PI来代替3.14159262.宏定义是用宏来代替字符串也就是做简单的置换,不做正确性检查如果写成#define PI 3.l4l6926即把1写成了字母l但是预处理照常代入不做任何语法检查!2.1.2带参数的宏定义#define 宏名(参数) 字符串#define S(a,b) a*barea = S(a,b);#define MAX(x,y) (

10、x)>(y) ? (x):(y)3.typedef和#define的区别一般来说typedef 因为它能正确处理指针类型typedef char *String1;#define String2 char *String1 s1,s2;String2 s3,s4;s1,s2,s3 被定义为了char* 但s4却被定义为了char型3. static 变量static变量大致分为三种用法1. 用于局部变量中,成为静态局部变量. 静态局部变量有两个用法,记忆功能和全局生存期.2. 用于全局变量,主要作用是限制此全局变量被其他的文件调用.3. 用于类中的成员.表示这个成员是属于这个类但是不属于

11、类中任意特定对象1. 静态局部变量静态局部变量属于静态存储方式,它具有以下特点:(1)静态局部变量在函数内定义 它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。(2)允许对构造类静态局部量赋初值 例如数组,若未赋以初值,则由系统自动赋以0值。(3) 对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以看出它是一种生存期为整个源程序的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保

12、存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。举例如下:void funstatic int a = 1;a+;在第一次进入这个函数的时候,变量a被初始化为1!并接着自增1,以后每次进入该函数,a就不会被再次初始化了,仅进行自增1的操作;在static发明前,要达到同样的功能,则只能使用全局变量:int a = 1;void funa+;2.静态全局变量全局变量(外部变量)的之前再加上static 就构成了静态的全局变量。全局变量本

13、身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于,非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。因此st

14、atic 这个说明符在不同的地方所起的作用是不同的。3.static的类成员变量static关键字有两种意思,你看上下文来判断1.表示变量是静态存储变量,表示变量存放在静态存储区.2.表示该变量是内部连接(这种情况是指该变量不在任何之内,就象全局变量那样,这时候加上static),也就是说在其它的.cpp文件中,该变量是不可见的(你不能用).二、static 函数内部函数和外部函数当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。1 内部函数(又称静态函数)如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:static 函数类型 函数名(函数参数表)关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论