9512.net
甜梦文库
当前位置:首页 >> 数学 >>

2-函数



SECTION

2

函 数

函数的定义
标准C:
函数类型 函数名(形式参数列表) {

局部变量定义
函数体

}

C51:
函数类型 函数名(形式参数列表)[reentrant][interrupt m][

using n]

{
局部变量定义 函数体

}

[reentrant]
这个修饰符用于把函数定义为可重入函数。 所谓可重入函数就是允许被递归调用的函数。

[interrupt m]
单片机五个中断请求源 : 0:INT0—外部中断请求0。 1:定时器/计数器T0溢出中断请求。 2: INT1—外部中断请求1。 3:定时器/计数器T1溢出中断请求。 4:串行口中断请求。

[using n]
? 修饰符using n用于指定本函数内部使用的工作寄 存器组,其中n的取值为0~3,表示寄存器组号。 ? C51编程看不到这些寄存器组,不用加using n 修饰 符,由C51编译器自动选择。

函数的调用与声明
?定义:函数声明是指对所用到的函数的特征

进行必要的声明。
? 形式:类型标识符 函数名(形式参数列表);

? 功能:告诉编译系统函数类型、参数个数及类型, 以便检验。

?函数调用
max(int x, int y) 形参 { int z; z=x>y?x:y; return(z); } int main(void) { int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); 实参 printf(“max is %d",c); return 0; }

例:比较两个数并输出大 者。
c=max(a,b); max(int x, int y) { int z; z=x>y?x:y; return(z); }

?函数声明
举例:

float add(float x, float y) #include<stdio.h> { float z; float add(float x,float y); intz=x+y; main(void) 被调函数出现在 { return(z); 函数声明 主调函数 } float a,b,c; 之前,不必函数 #include<stdio.h> scanf("%f,%f",&a,&b); 声明 intc=add(a,b); main(void) { printf("sum float a,b,c; is %f",c); scanf("%f,%f",&a,&b); return 0;} c=add(a,b); float add(float x, float y) is %f",c); { printf("sum float z; return 0; z=x+y; } return(z); }

局部变量与全局变量
?局部变量---内部变量 int main(void)
float f1(int a) { int a,b; ?定义:在函数内定义,只在本函数内有效。 a=3; { int b,c; a,b,c有效 ……. ?说明: b=4; } printf("main:a=%d,b=%d\n",a,b); ? main中定义的变量只在 main 中有效。 sub(); char f2(int x,int y) ? 不同函数中可以使用相同名字的变量 ,它们 { int i,j; printf("main:a=%d,b=%d\n",a,b); x,y,i,j有效 …… 代表不同的对象 ,互不干扰。 return 0; } } ? 形参属于局部变量。 int main(void) sub() { int m,n; { int a,b; m,n有效 ……. a=6; b=7; } printf("sub:a=%d,b=%d\n",a,b); }

? 全局变量 --外部变量 int p=1,q=5;

/* 外部变量 */ float f1(int a) /* 定义函数f1 */ ?定义:在函数之外定义的变量,作用域从变量 {int b,c; 定义处到程序代码结束。 … ?说明: } ? 在C语言中,凡是声明在函数外部的变量都是 char c1,c2; /* 外部变量?*/ 外部变量。 char f2 (int x, int y) /* 定义函数f2 */ {int i,j; … } int main (void) /*?主函数?*/ {int m,n; … }

int a=10, b=5, x, y; /*全局变量*/ int max(int x, int y) { return x>y?x:y;
形参x,y 作用域

}
int c; /* 全局变量 */ void main() { int a=8; c=max(a, b); }
局部变量 a作用域 全局变量 c作用域

全局变量 a,b,x,y 作用域

printf(“%d”,c);

C51中常用的库函数
? 非本征库函数
(1)专用寄存器include文件:reg51.h中包括了 所有80C51的SFR及其位定义,reg52.h中包括了 所有80C52的SFR及其位定义,一般系统都必须

包括reg51.h或reg52.h。

(2)绝对地址include文件absacc.h:在该文件中 实际只定义了几个宏,以确定各存储空间的绝对

地址。
(3)动态内存分配函数,位于stdlib.h中。

(4)缓冲区处理函数位于“string.h”中:其中包
括复制、比较、移动等函数 。

(5)输入输出流函数,位于stdio.h中:流函数通 过80C51的串口或用户定义的I/O口读写数据,默 认为80C51串口 。

? 本征库函数
C51提供的本征函数在编译时直接将固定的 代码插入当前行,而不是用ACALL和LCALL语 句实现的,这样就大大提供了函数访问的效率。 C51的本征库函数数目虽少,但都非常有用。 使用上述函数时,源程序开头必须包含 #inclucle <intrins.h>一行。



更多相关文章:
§2-1函数的概念及表示方法 教案
§2-1函数的概念及表示方法 教案_高一数学_数学_高中教育_教育专区。1. 函数设A、B是非空数集,如果按照某种确定的对应关系f,使对于集合A中的任意一个数x,在...
2015高考数学(文科)试题汇编及答案----2函数
2015高考数学(文科)试题汇编及答案---2函数_数学_高中教育_教育专区。高考文科数学,试题分类 2015 高考数学(文科---函数)试题汇编及答案 1.(15 年北京文科)下列...
18.1-2函数的概念
18.1-2函数的概念_数学_初中教育_教育专区。_ 月_ _日 星期__ 第__周 课教目重难题学标点点 18.1-2 函数的概念 课型 新授 教时 1 1.知道函数的...
2015年高考数学真题分类汇编2 -函数
2015年高考数学真题分类汇编2 -函数_高三数学_数学_高中教育_教育专区。2015年,高考,数学真题,分类汇编,函数 2015 年高考数学真题分类汇编 2-函数 1.(15 年北京...
二次函数公式
函数公式_初三数学_数学_初中教育_教育专区。★函数知识点汇总★ 1.定义:一般地,如果 y ? ax 2.函数 y ? ax 的性质 2 2 2 ? bx ? c ...
示范教案(1.2.1 函数的概念 第2课时)
示范教案(1.2.1 函数的概念 第2课时)_高二数学_数学_高中教育_教育专区。函数的概念示范教案(1.2.1 函数的概念 第 2 课时) 复习 1.函数的概念. 2.函数...
18.4-2函数的表示方法
_ 月_ _日 星期__ 第__周 课题 18.4-2 函数的表示方法 课型 新授 教时 1 教目 学标 重难 点点 1.通过对实际问题的讨论,在建立函数关系的过程中...
2.1函数-区间的概念及求定义域的方法
2.1.2 函数-区间的概念及求定义域的方法教学目的: 1.能够正确理解和使用“区间”“无穷大”等记号;掌握分式函数、根式 、 函数定义域的求法,掌握求函数解析式...
2章 2节函数域
22函数域_数学_高中教育_教育专区。课时作业一、选择题 1.(2011 广东高考)函数 f(x)= A.(-∞,-1) C.(-1,1)∪(1,+∞) 函数的定义域和值域 ...
精算高难度压轴填空题-----函数(二)
kx 在 [1,5] 上恒成立,则实数 k 的取值范围是 ___ (??,6] 9 ? x ? 3 ,显然 x ? 3 时,右边取最小值 x 1 3 1 2 3. 如果函数 f ( x)...
更多相关标签:
二次函数y ax2 bx c    atan2函数    初2一次函数的图像    已知函数f x x 2 a x    rgb2gray函数    medfilt2函数    二次函数y a x h 2    保留2位小数的函数    

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图