C语言包含特殊寄存器文件ch,C语言CH8.ppt

C语言CH8

例 变量的寿命与可见性 #include int i=1; main() { static int a; register int b=-10; int c=0; printf("-----MAIN------\n"); printf("i:%d a:%d \ b:%d c:%d\n",i,a,b,c); c=c+8; other(); printf("-----MAIN------\n"); printf("i:%d a:%d \ b:%d c:%d\n",i,a,b,c); i=i+10; other(); } other() { static int a=2; static int b; int c=10; a=a+2; i=i+32; c=c+5; printf("-----OTHER------\n"); printf("i:%d a:%d \ b:%d c:%d\n",i,a,b,c); b=a; } -------Main------ i:1 a:0 b:-10 c:0 ------Other------ i:33 a:4 b:0 c:15 -------Main----- i:33 a:0 b:-10 c:8 -------Other------- i:75 a:6 b:4 c:15 全局i 1 main: a 0 b:-10 register main:c 0 静态 存储区 动态 存储区 other: a 2 other: b 0 other: c 10 8 4 33 15 4 43 other: c 10 6 75 15 6 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); } 例 用extern扩展外部变量作用域 运行结果: 1: x=0 y=0 2: x=135 y=246 3: x=135 y=246 例 引用其它文件中的外部变量 int global; extern float x; main() { int local; . . . } extern int global; static int number; func2() {. . . } float x; static int number; func3() { extern int global; . . . } file1.c file2.c file3.c 例 引用其它文件中的变量,输出a?b和a的m次方 int a; main() { int power(int n); int b=3,c,d,m; printf("Enter the number a and its power:\n"); scanf("%d,%d",&a,&m); c=a*b; printf("%d*%d=%d\n",a,b,c); d=power(m); printf("%d**%d=%d",a,m,d); } extern int a; int power(int n) { int i,y=1; for(i=1;i<=n;i++) y*=a; return(y); } 内部函数与外部函数 内部函数: 格式:在函数定义时加上static.即: static 类型标示符函数名(形参表) 内部函数又称为静态函数这样的函数只限在所在的文件中. 外部函数: 格式:在函数定义时加上extern即: extern 类型标示符函数名(形参表) 函数被冠以extern说明函数为外部函数,可以被其他文件中的函数所调用,,当一个函数在定义时,未说明static时隐含的类型为extern. * * * 例exp8_8:函数的直接递归调用 int f(int x) { int y,z; … z=f(y); … retur

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值