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
个人原创黄金资料---函数2 - 函数(二) 一、考点梳理: 1. 二次函数的有关概念(顶点式、一般式、交点式) 2. 二次函数的图像及性质(增减性、对称性、最值...
2.2指数函数的图像及性质
2.2指数函数的图像及性质_高一数学_数学_高中教育_教育专区。第一章 基本初等函数 2 指数函数的图像及性质 一、学习目标 1.理解指数函数的概念和意义. 2.能...
2.2.2-对数函数及其性质练习题2
2.2.2-对数函数及其性质练习题2_数学_高中教育_教育专区。2.2.2 对数函数及其性质练习题 2 1.函数 f(x)=lg(x-1)+的定义域为( ) A.(1,4] B.(1...
18.4-2函数的表示方法_图文
_ 月_ _日 星期__ 第__周 课题 18.4-2 函数的表示方法 课型 新授 教时 1 教目 学标 重难 点点 1.通过对实际问题的讨论,在建立函数关系的过程中...
§2-2-2对数函数
高一数学◆必修 1◆导学案 §2.2 对数与对数函数 §2.2.2 对数函数(1) 【三维目标】 1.知识与技能 (1)理解对数函数的概念,能正确描绘对数函数的图象,感受...
2015年高考数学真题分类汇编2 -函数
2015年高考数学真题分类汇编2 -函数_高三数学_数学_高中教育_教育专区。2015年,高考,数学真题,分类汇编,函数 2015 年高考数学真题分类汇编 2-函数 1.(15 年北京...
17.2.2-2函数的图像
、课堂练习 课本第 39 页练习的第 1、2 题,等待学生思考后,解答。 三、小结 本节课进一步认识函数的图象,懂得如何从函数的图象中获取我们所要的信息,希望...
2-函数及其性质
11、已知函数 f (x) 的值域为 [0,4] ( x ? [?2,2]) ,函数 g ( x) ? ax ? 1 , ( x ? [?2,2]) , ?x1 ? [?2,2] ,总 ?x0 ? [...
单元测试2-函数
6页 2财富值 函数单元测试 4页 免费 函数测试题 4页 免费 南京一中高一数学周练(4)0... 3页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题...
数学文专题训练2-函数
8页 2财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 数学文专题训练2-函数 隐藏>> 函数的基本性质练习一、选择...
更多相关标签:

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

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