网站大量收购独家精品文档,联系QQ:2885784924

C语言第4章作用域.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言第4章作用域

局部变量的作用域 全局变量的作用域 4.2.2 存储类型 根据存储类型变量可分为如下四种具体形式: 例如: f(int a) { int b=0; static int c=3; b=b+1; c=c+1; return( a+b+c); } main( ) { int a=2 , i; for(i=0; i3; i++) printf(“%d,”,f(a)); } 运行结果为: 7 ,8 ,9 静态局部变量相关说明: 静态全局变量的相关说明: 静态全局变量与普通全局变量在存储方式上完全相同,都是静态存储方式。 区别在于:非静态全局变量的作用域是整个源程序;而静态全局变量的作用域只是定义它的文件 总结 1 根据变量的作用域可以将变量划分为:局部变量和全局变量 根据变量的存储类型(决定生存期)将变量划分为: 自动变量、寄存器变量、静态变量 静态局部变量的生存期为整个源程序,但其作用域为定义该变量的函数 静态全局变量的生存期为整个源程序,其作用域为定义该变量的源文件 4.4 宏定义与宏替换 带参数宏定义 一般形式: #define 宏名(参数表) 宏体 被包含文件内容 源文件(*.c) 头文件(*.h) file2.c (文件2) #include stdio.h extern enter_string (str) /*定义外部函数enter_string*/ char str[80]; { gets (str); } /* 读入字符串str */ file3.c (文件3) extern delete_string (str, ch) /* 定义外部函数delete_string */ char str [ ], ch; { int i, j; for (i=j=0; str[i]!= \0 ; i++) if (str[i]!=ch) str[j++]=str[i]; str[i]= \0 ; } file4.c (文件4) extern print_string (str) /* 定义外部函数print_string */ char str[ ]; { printf(%s, str); } 运行情况如下: abcdefgc? (输入str) c ? (输入要删去的字符) abdefg (输出已删去指定字符的字符串) 连接: link file1+file2+file3+file4 主函数 编译: 分别编译file1.obj, file2.obj, file3.obj, file4.obj 第四章 模块化程序设计 4.1 函数 4.2 变量的存储属性 4.3 模块的编译和链接 (内部函数和外部函数) 4.4 宏定义与宏替换 目的: 为了简化程序的编写,提高程序的可移植性、可读性、模块化。 C语言设计了若干命令–––编译预处理命令,并可出现于程序当中。 处理流程: 第一次编译扫描时,将预编译命令处理完,然后再进行正式编译,生成目标代码。 1. 宏定义命令; 有三种类型的预处理命令: 为了与C语句区别,这些命令均以“ #”开头。 2. 文件包含命令; 3. 条件编译命令。 如 #define YES 1 #define NO 0 if(x==YES) printf(“correct!\n”); else if (x==NO) printf(“error!\n”); 展开后: if(x==1) printf(“correct!\n”); else if (x==0) printf(“error!\n”); 4.4.1、宏定义 不带参数宏定义 一般形式: #define 宏名 宏体 功能:用指定标识符(宏名)代替字符序列(宏体) 宏展开:预编译时,用宏体替换宏名--不作语法检查 如 #define YES 1 #define NO 0 #define

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档