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>一行。



更多相关文章:
2015年高考数学真题分类汇编2 -函数
2015年高考数学真题分类汇编2 -函数_高三数学_数学_高中教育_教育专区。2015年,高考,数学真题,分类汇编,函数 2015 年高考数学真题分类汇编 2-函数 1.(15 年北京...
1.2.2-2函数的表示及映射
1.2.2函数的表示法(2) 13页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 1.2.2-2函数的表示及映射 隐藏>...
车辆作业2-函数部分
车辆作业2-函数部分_文学_高等教育_教育专区。车辆作业 以下作业要求在周五前完成,不能写在预习报告上。所有程序要求编译正确并且能实 以下作业要求在周五前完成,不...
1-2函数及其表示-2-2答案
1-2函数及其表示-2-2答案_数学_高中教育_教育专区。人教版高中必修一 高中数学·必修一 1-2-2-2 基础巩固 一、选择题 1.下列从集合 A 到集合 B 的对应...
§2-1函数的概念及表示方法 教案
§2-1函数的概念及表示方法 教案_高一数学_数学_高中教育_教育专区。1. 函数设A、B是非空数集,如果按照某种确定的对应关系f,使对于集合A中的任意一个数x,在...
22函数
22函数域_数学_高中教育_教育专区。课时作业一、选择题 1.(2011 广东高考)函数 f(x)= A.(-∞,-1) C.(-1,1)∪(1,+∞) 函数的定义域和值域 ...
18.1-2函数的概念
18.1-2函数的概念_数学_初中教育_教育专区。_ 月_ _日 星期__ 第__周 课教目重难题学标点点 18.1-2 函数的概念 课型 新授 教时 1 1.知道函数的...
2-2函数的单调性与最值
答案:C 、填空题 7.函数 y=-(x-3)|x|的递增区间是___. 解析: y=-(x-3)|x| 2 ? ?-x +3x =? 2 ?x -3x ? ?x>0?, ?x≤0?. ? ?...
2-2函数的性质 over
§2-2 - 函数的性质 【知识要点】 知识要点】 一 奇偶性. 设函数 y=f(x)的定义域为 D,如果对于 D 内的任意一个 x,都有-x∈D,且 f(-x)=- f(x...
2-2-2-2对数函数性质的应用
2.2.2.1 对数函数性质应用一、选择题 1.三个数 60.7,0.76,log0.76 的大小顺序是( A.0.76<log0.76<60.7 C.log0.76<60.7<0.76 [答案] D [...
更多相关标签:
初2一次函数的图像    atan2函数    二次函数y ax2 bx c    函数y ln2x x    math.atan2函数    别怕函数其实很简单2    19.1.2函数的图像ppt    dbnum2函数    

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

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