第7章函数-模块化程序设计-预处理命令案例.ppt

第7章函数-模块化程序设计-预处理命令案例.ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * %p 是以16进制的形式输出内存地址? %x 也是以16进制的形式输出内存地址(整数) 不过%p的输出字符为8个前2个为00 %x只有6个 * * * * * * * * * * * * * * * * * * * * * * * * * * register(寄存器型)变量 CPU内有寄存器可用来存放数据,若把数据声明为寄存器类型,则将该类型的数据存放在寄存器中,其优点是:减少数据与内存之间的交换频率,提高程序的效率和速度。 C语言程序设计 第七章 函数 CPU 寄存器组 内存 例7.19 使用寄存器变量 #include stdio.h void main( ) { long fac(long); long i, n; scanf(“%ld”,n); for(i=1; i=n; i++) printf(“%ld != %ld\ n”, i, fac(i));} long fac(long n) { register long i, f=1; for(i=1; i=n; i++) f=f * i; return(f); } 运行结果: 1 ! = 1 2 ! = 2 3 ! = 6 4 ! = 24 5 ! = 120 寄存器类型变量的几点说明: 1. 局部自动变量类型和形参可定义为寄存器变量。 2. 由于CPU具有的通用寄存器数量有限,C程序中允许定义的寄存器类型的变量一般以2个左右为宜。超过的话,系统会自动将超过的变量设为自动型变量。 3. 局部静态变量不能定义为寄存器变量。 4. long,double,float不能设为register型,因为超过寄存器长度 C语言程序设计 第七章 函数 用extern声明外部变量 外部变量也称全局变量,在函数外部定义,其作用域是从变量的定义处开始,到本程序文件的未尾。在定义的作用域内,全局变量可为程序中各个函数所引用。 可以用extern声明外部变量,以扩展外部变量的作用域。 C语言程序设计 第七章 函数 在一个文件内声明外部变量 外部变量没在文件开头定义,其作用域为定义处到文件结束。定义处之前的函数要使用,则在引用前用关键字extern作“外部变量声明”。 例8.20 用extern声明外部变量,扩展作用域 int max(int x, int y) { int z; z=xy ? x:y; return(z); } main( ) { extern int A,B; printf(“%d”,max(A,B)); } int A=13,B=-8; 运行结果: 13 可以省略为: extern A,B; 一般应将外部变量定义放在程序最前面,从而省去extern声明 C语言程序设计 第七章 函数 例 用extern扩展作用域 main() { void gx(),gy(); extern int X,Y; printf(“1: x=%d\ty=%d\n”,X,Y); Y=246; gx(); gy(); } void gx() { extern int X,Y; X=135; printf(“2: x=%d\ty=%d\n”,X,Y); } int X,Y; void gy() { printf(“3: x=%d\ty=%d\n”,X,Y); } 运行结果: 1: x=0 y=0 2: x=135 y=246 3: x=135 y=246 用static声明外部变量 如果外部变量只允许本文件使用,不允许其它文件引用,则定义时加static声明。称为“静态外

文档评论(0)

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

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

1亿VIP精品文档

相关文档