5.17 外部全局变量和静态全局变量

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本节主题: 外部全局变量和静态全局变量
常见的全局变量使用形式
#include <stdio.h> int a=15,b=-7; //定义全局变量a,b int max(int,int); int main( ) {
printf("%d\n", max(a,b)); return 0; } int max(int x,int y) { int z; z=x>y?x:y; return z; }
main.c
#include <stdio.h> extern int a,b; int max(int,int); int main() {
printf("%d\n", max(a,b)); return 0; }
使用extern声明就能够在一个文件中 调用其他文件中定义的变量,或者说把 该变量的作用域扩展到本文件。
编译系统对extern的处理
extern int a,b;
用static声明静态全局变量:限制本文件外使用
max.c static int a=15,b=-7; int max(int x,int y) {
int z; z=x>y?x:y; return z; }
定义全局变量时加一个static声明,
该变量只限于被本文件引用,而不能
被其他文件引用
main.c #include <stdio.h> int a=100,b=10; int max(int,int); int main() {
printf("%d\n", max(a,b)); return 0; }
尽量限制使用全局变量为妙。
用extern拓展一个文件内的全局变量的作用范围
#include <stdio.h> int max(int,int); int main( ) {
extern int a,b; //对全局变量a,b作提前引用声明 printf("%d\n", max(a,b)); return 0; } int a=15,b=-7; //定义全局变量a,b int max(int x,int y) { int z; z=x>y?x:y; return z; }
用extern声明其他文件中定义的外部变量
max.c
int a=1wenku.baidu.com,b=-7; int max(int x,int y) {
int z; z=x>y?x:y; return z; }
慎重扩展全局变量的作用域! 为程序设计带来方便 执行一个文件中的函数时,可能会 改变了该全局变量的值,从而会影 响到另一文件中的函数执行结果。
相关文档
最新文档