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---函数及其解析式(教师用书)(2011.03.18)
2.两个函数的相等:函数的定义含有三个要素,即定义域 A、值域 C 和对应 法则 f.当函数的定义域及从定义域到值域的对应法则确定之后,函数的值域也就 随之确定....
实验2 函数作图
实验报告: 实验报告:函数作图 【实验目的】 实验目的】 1.掌握 MATLAB 的基本绘图函数2.掌握绘图函数的用法、简单图形标注、简单颜色设定。 【实验内容】 实验...
函数公式
函数公式_初三数学_数学_初中教育_教育专区。★函数知识点汇总★ 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.函数...
2.1函数-区间的概念及求定义域的方法
2.1.2 函数-区间的概念及求定义域的方法教学目的: 1.能够正确理解和使用“区间”“无穷大”等记号;掌握分式函数、根式 、 函数定义域的求法,掌握求函数解析式...
函数公式、图像汇总 (2)
在[2kπ-π,在(kπ- , 2kπ]上都是增 2 ? 函数; [2kπ,在 kπ+ )内都是 2kπ+π] 上都是 2函数(k∈Z) 增函数(k∈Z) 反三角函数的图形...
22函数
22函数域_数学_高中教育_教育专区。课时作业一、选择题 1.(2011 广东高考)函数 f(x)= A.(-∞,-1) C.(-1,1)∪(1,+∞) 函数的定义域和值域 ...
1.2.2函数的表示法教案
1.2.2函数的表示法教案_高一数学_数学_高中教育_教育专区。§1.2.2 函数的表示法 一、教学目标: 1. 知识与技能 (1)明确函数的三种表示方法; (2)会根据不...
1.2.2函数的表示方法
高中数学必修(1)第一章集合与函数概念教案 1.2.2 函数的表示方法(约三课时) 三维目标:【知识与技能】 1.掌握函数的三种主要表示方法——解析法、列表法、图象...
2函数的插值
x2 ) = x1 ≤ x ≤ x2 2 2 4 6.若 h 是小量,则 f ( x ? h), f ( x), f ( x + h) 三个函数值应怎样线性组合,才能得到较好的 f ′′...
更多相关标签:
二次函数y ax2 bx c    atan2函数    已知函数f x 2sinwx    matlab num2str函数    已知函数f x 2 x    rgb2gray函数    math.atan2函数    medfilt2函数    

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

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