函数定义好以后,要被其它函数调用了才能被执行.C
语言的函数是能相互调用的,
但在调用函数前,必须对函数的类型进行说明,就算是标准库函数也不例外.标准库函数的
说明会被按功能分别写在不一样的头文件中,使用时只要在文件最前面用#include
预处理语
句引入相应的头文件.如前面一直有使用的
printf
函数说明就是放在文件名为
stdio.h
的
头文件中.调用就是指一个函数体中引用另一个已定义的函数来实现所需要的功能,这个时候函
数体称为主调用函数,函数体中所引用的函数称为被调用函数.一个函数体中能调用数个
其它的函数,这些被调用的函数同样也能调用其它函数,也能嵌套调用.笔者本人认为
主函数只是相对于被调用函数而言.在
语言中有一个函数是不能被其它函数所调用的,
它就是
main
主函数.调用函数的一般形式如下:
函数名
(实际参数表)
"函数名"就是指被调用的函数.实际参数表能为零或多个参数,多个参数时要用逗
号隔开,每个参数的类型、位置应与函数定义时所的形式参数一一对应,它的作用就是把参
数传到被调用函数中的形式参数,如果类型不对应就会产生一些错误.调用的函数是无参函
数时不写参数,但不能省后面的括号.
在以前的一些例子我们也能看不一样的调用方式:
①函数语句
如
("Hello
World!n");
这是在
我们的第一个程序中出现的,它以
"Hello
World!n"为参数调用
这个库函数.今天这一节函数调用被看作了一条语句.
"函数参数"这种方式是指被调用函数的返回值当作另一个被调用函数的实际参
数,如
的返回值作为
StrToInt
函数的实际参数传递.
而在上一篇的例子中有
temp
=
Count();这样一句,这个时候函数的调用作为一个运算
对象出现在表达式中,能称为函数表达式.例子中
Count()返回一个
int
类型的返回
值直接赋值给
temp.注意的是这种调用方式要求被调用的函数能返回一个同类型的值,
不然会出现不可预料的错误.
前面说到调用函数前要对被调用的函数进行说明.标准库函数只要用#include
引入已
写好说明的头文件,在程序就能直接调用函数了.如调用的是自定义的函数则要用如下形
式编写函数类型说明
类型标识符
函数的名称(形式参数表);
这样的说明方式是用在被调函数定义和主调函数是在同一文件中.你也能把这些写到
文件名.h
的文件中用#include
"文件名.h"引入.如果被调函数的定义和主调函数不是在同
一文件中的,则要用如下的方式进行说明,说明被调函数的定义在同一项目的不一样文件之上,
其实库函数的头文件也是如此说明库函数的,如果说明的函数也能称为外部函数.
extern
函数的定义和说明是完全不一样的,在编译的角度上看函数的定义是把函数编译存放在
ROM
的某一段地址上,而函数说明是告诉编译器要在程序中使用那些函数并确定函数的地
址.如果在同一文件中被调函数的定义在主调函数之前,这个时候能不用说明函数类型.也就
是说在
函数之前定义的函数,在程序中就能不用写函数类型说明了.能在一个函
数体调用另一个函数(嵌套调用),但不允许在一个函数定义中定义另一个函数.还要注意
的是函数定义和说明中的"类型、形参表、名称"等都要相一致.
重入函数,又叫再入函数,是一种可以在函数体内不直接或间接调用其自身的一种函数.
再入函数可被递归调用,无论何时,包括中断函数在内的任何函数都可以调入.再入函数在
函数说明: 函数名(形式参数表) reentrant
注意事项:
①.、再入函数不能传递bit类型参数.
区,compact模式下模拟堆栈区位于pdata区,large模式下模拟堆栈区位于xdata区.
用不同存储器模式的再入函数,但可以调用普通函数.
数
定义和声明的语句不影响程序的运行
单片机上电就找main执行
而定义和声明的语句是给编译软件用的
delay函数是一般自己定义的一个延时函数.
c语言定义延时函数主要通过无意义指令的执行来达到延时的目的.下面给出一个经典的延时函数.
// 定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x0;x--)
for(y=110;y0;y--);
}
定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
for(x=xms;x>>0;x--)
for(y=110;y>>0;y--);
使用:
void Delay10us(uchar Ms)
uchar data i;
for(;Ms>>0;Ms--)
扩展资料
以上就是土嘎嘎小编为大家整理的单片机c语言函数定义相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!