打印
[经验分享]

(转)C语言的一些特点

[复制链接]
925|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
毁灭2012|  楼主 | 2015-11-6 21:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、C程序是由函数构成的,一个C源程序至少包括一个函数,一个C源程序有且只有一个名为main()的函数,也可能包含其它函数,因此,函数是C程序的基本单位。主程序通过直接书写语句和调用其它函数来实现有关功能,这些其它函数可以是由C语言本身提供给我们的(如例3中的_crol_(…)函数),这样的函数称之为库函数,也可以是用户自己编写的(如例2、3中用的mDelay(…)函数),这样的函数称之为用户自定义函数。那么库函数和用户自定义函数有什么区别呢?简单地说,任何使用Keil C语言的人,都可以直接调用C的库函数而不需要为这个函数写任何代码,只需要包含具有该函数说明的相应的头文件即可;而自定义函数则是完全个性化的,是用户根据自己需要而编写的。Keil C提供了100多个库函数供我们直接使用。

  2、一个函数由两部份组成:

  (1)函数的首部、即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。

  例如:void mDelay (unsigned int DelayTime)

  一个函数名后面必须跟一对圆括号,即便没有任何参数也是如此。

  (2)函数体,即函数首部下面的大括号“{}”内的部份。如果一个函数内有多个大括号,则最外层的一对“{}”为函数体的范围。

  函数体一般包括:

  声明部份:在这部份中定义所用到的变量,例1.2中unsigned char j。

  执行部份:由若干个语句组成。

  在某此情况下也可以没有声明部份,甚至即没有声明部份,也没有执行部份,如:

void mDelay()

{}

  这是一个空函数,什么也不干,但它是合法的。

  在编写程序时,可以利用空函数,比如主程序需要调用一个延时函数,可具体延时多少,怎么个延时法,暂时还不清楚,我们可以主程序的框架结构弄清,先编译通过,把架子搭起来再说,至于里面的细节,可以在以后慢慢地填,这时利用空函数,先写这么一个函数,这样在主程序中就可以调用它了。

  3、一个C语言程序,总是从main函数开始执行的,而不管物理位置上这个main()放在什么地方。例1.2中就是放在了最后,事实上这往往是最常用的一种方式。

  4、主程序中的mDelay如果写成mdelay就会编译出错,即C语言区分大小写,这一点往往让初学者非常困惑,尤其是学过一门其它语言的人,有人喜欢,有人不喜欢,但不管怎样,你得遵守这一规定。

  5、C语言书写的格式自由,可以在一行写多个语句,也可以把一个语句写在多行。没有行号(但可以有标号),书写的缩进没有要求。但是建议读者自己按一定的规范来写,可以给自己带来方便。

  6、每个语句和资料定义的最后必须有一个分号,分号是C语句的必要组成部份。

  7、可以用/*…..*/的形式为C程序的任何一部份作注释,在“/*”开始后,一直到“*/”为止的中间的任何内容都被认为是注释,所以在书写特别是修改源程序时特别要注意,有时无意之中删掉一个“*/”,结果,从这里开始一直要遇到下一个“*/”中的全部内容都被认为是注释了。原本好好的一个程序,编译已过通过了,稍作修改,一下出现了几十甚至上百个错误,初学C的人往往对此深感头痛,这时就要检查一下,是不是有这样的情况,如果有的话,赶紧把这个“*/”补上。

  特别地,Keil C也支持C++风格的注释,就是用“//”引导的后面的语句是注释,例:

P1_0=!P1_0; //取反P1.0

  这种风格的注释,只对本行有效,所以不会出现上面的问题,而且书写比较方便,所以在只需要一行注释的时候,我们往往采用这种格式。但要注意,只有Keil C支持这种格式,早期的Franklin C以及PC机上用的TC都不支持这种格式的注释,用上这种注释,编译时通不过,会报告编译错误。
沙发
zh113214| | 2015-11-6 21:48 | 只看该作者
学习了,多谢分享。C语言的一些特点说的很详细。

使用特权

评论回复
板凳
boy1990| | 2015-11-8 10:52 | 只看该作者
这些可以大概的了解哈

使用特权

评论回复
地板
bbapple| | 2015-11-10 19:39 | 只看该作者
每个语句和资料定义的最后必须有一个分号,分号是C语句的必要组成部份。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

207

帖子

2

粉丝