本帖最后由 mickit 于 2023-12-23 12:21 编辑
函数定义的一般形式如下:
View Raw Code?
1
2
3
1) 函数值类型,就是函数返回值的类型。在我们后边的程序中,会有很多函数中有 return x 这个东西,这个返回值也就是函数本身的类型。还有一种情况,就是这个函数只执行操作,不需要返回任何值,那么这个时候它的类型就是空类型 void,这个 void 按道理来说是可以省略的,但是一旦省略,Keil 软件会报一个警告,所以我们通常也不省。 2) 函数名,可以由任意的字母、数字和下划线组成,但数字不能作为开头。函数名不能与其他函数或者变量重名,也不能是关键字。什么是关键字呢,后边我们慢慢接触,比如 char 这类,都是关键字,是我们程序中具备特殊功能的标志符,这种东西不可以命名函数。 3) 形式参数列表,也叫做形参列表,这个是函数调用的时候,相互传递数据用的。有的函数,我们不需要传递参数给它,那么可以用 void 来替代,void 同样可以省略,但是那个括号是不能省略的。 4) 函数体,包含了声明语句部分和执行语句部分。声明语句部分主要用于声明函数内部所使用的变量,执行语句部分主要是一些函数需要执行的语句。特别注意,所有的声明语句部分必须放在执行语句之前,否则编译的时候会报错。 5) 一个工程文件必须有且仅有一个 main 函数,程序执行的时候,都是从 main 函数开始的。 6) 关于形参和实参的概念,我们后边再总结,如果遇到程序里有,大家再跟着抄一段时间。先用,后讲解,这样更有利于理解。 我们来回顾一下上节课的闪烁 LED 程序中的主函数,大家根据注释再认真分析一遍,是不是对函数的认识就清楚多了。 View Raw Code?
void main(){ //void 即函数类型 | | //以下为声明语句部分 | unsigned int i = 0; //定义一个无符号整型变量 i,并赋初值0 | | //以下为执行语句部分 | ENLED = 0; //U3、U4 两片 74HC138 总使能 | ADDR3 = 1; //使能 U3 使之正常输出 | ADDR2 = 1; //经 U3 的 Y6 输出开启三极管 Q16 | ADDR1 = 1; | ADDR0 = 0; | while (1){ | LED = 0; //点亮小灯 | for (i=0; i<30000; i++); //延时一段时间 | LED = 1; //熄灭小灯 | for (i=0; i<30000; i++); //延时一段时间 | } | } |
代码中的“//”是注释符,意思是说在这之后的内容都是注释。注释是给程序员自己或其他人看的,用于对程序代码做一些补充说明,对程序的编译和执行没有任何影响。
|