c语言嵌套函数内的变量,C语言函数的嵌套调用变量的存储类型编译预处理解读.ppt...

C语言函数的嵌套调用变量的存储类型编译预处理解读

上讲内容回顾 函数的概念 函数的定义及调用 函数的返回值 函数的参数及其传递方式 本讲主要内容 函数的嵌套调用 变量的存储类型 全局量和局部量 内部函数和外部函数 编译预处理 程序的组合(自学) 标准库函数(自学) 函数的嵌套调用 C语言中的函数定义是互相独立的,函数和函数之间没有从属关系,一个函数既可以被其它函数调用,也可以调用别的函数,这就是嵌套调用 变量的完整定义 变量的存储类型 存储类型说明符有: Auto(自动)型:属于临时性存储,其存储空间可以被若干变量多次覆盖使用 register(寄存器)型(一般情况下不这样指定) *存放在CPU的通用寄存器中,目的是提高执行速度 *long,double,float不能设为register型,因为超过寄存器长度 static(静态)型:存放在静态存储区域中,生命期长 extern(外部)型:用于定义或说明变量是外部的。 C语言的内存空间 局部变量的存储类型:auto static register 静态类变量 全局变量的存储类型extern(外部)和static(静态) 使用全局变量传递数据 *在所有函数之外说明的变量是全局变量,它在所有函数中都是可见的。 *利用全局变量这个特性,可以在函数间传递多个数据 内部函数和外部函数 内部函数:也称为静态函数,只能在定义它的程序文件中被调用,而不能被其它文件中的函数所调用。 *定义形式为: static 类型标识符 函数名(形参表) 外部函数:除了内部函数,其余的函数都可以为其它文件调用 *定义形式: extern 类型标识符 函数名(形参表)*extern缺省时隐含为外部函数,调用文件中也要用extern说明 函数应用举例 编译预处理——文件包括 文件包含:是指一个源文件可以将另外一个指定的源文件包括进来。其一般形式为: #include *编译系统按系统设定的标准目录搜索包括文件 或 #include "包括文件路径名" *编译系统按指定路径搜索*未指定路径名时,首先在当前目录中搜索*找不到时再按系统设定的标准目录搜索包括文件 编译预处理——文件包含 C语言编译系统中以“.h”为扩展名的文件称为头文件,在使用C语言编译系统提供的库函数进行程序设计时,经常需要在源程序中包含相应的“头文件”,如“stdio.h”、“string.h”等。 用C语言设计程序时,通常将全局变量的定义、符号常量的定义、结构类型的定义以及函数类型说明等语句放在头文件中。这样,对于需要该文件的源程序来讲,都可以通过#include语句将其包含到程序中。正确使用#include语句,将会减少不必要的重复工作,提高编程效率。 编译预处理——宏定义 *宏定义可分为两种形式: 1.不带参的宏定义,形式为: #define 标识符(或符号常量名) 字符串 作用:是用一个指定的标识符来代替一个字符串。 例如:#defime N 10 /*用标识符N来代替字符串10*/ 在编译预处理时,预处理程序会把程序中该语句以后的所有 N 都用字符串“10”来替换。 2.带参的宏定义,形式为: #define 宏名(参数表) 字符串 注意:字符串中应包含参数表中指定参数。 编译预处理——宏定义 带参数的宏定义的展开替换过程为:程序中如果有带实参的宏名,则按#define语句中指定的字符串从左到右进行替换;如果串中包含宏中的形参,则用程序语句中相应的实参代替形参;如果宏定义中的字符串中的字符不是参数字符,则原样保留。 宏定义应用举例 作业 复习教材 第六章的第4、5、6、7节 第七章 预习教材 第八章的第三1、2、3、4节 自学第七单元的第四部分 * 研究式学习—C程序设计(第五章) * 研究式学习—C程序设计(第二章) * 第五章2 函数的嵌套调用变量的存储类型编译预处理 main() { 调用f1()函数 } f1() { 调用f2()函数 } f2() { } 例5_9 int f1(int a,int b)/*定义f1函数*/ {int c; a+=a;b+=b; c=f11(a,b); /*调用f11函数*/ return c*c; } int f11(int a,int b) /*定义f11函数*/ { int c; c=a*b%3; return c; } main() { int x=11,y=19; printf(“%d\n”,f1(x,y)); /*调用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值