我们知道,一个大的程序,会由多个c文件构成,这些c文件是属于同一个程序的。
那么,如何在一个文件中使用另一个文件中定义的变量呢??
解答:
C语言为了解决这个问题:引出了 全局作用域的概念
即:
在一个文件中定义的全局变量,具有全局作用域,当在本程序的其他文件中使用时,只需加上 extern外部引用声明即可。
所以:我们可以看出:
全局变量的作用域是:在整个的程序中的,在整个程序的其他文件中,是可以跨文件使用的。
但是,为了避免跨文件所带来的问题,C语言也引出了一个 文件作用域来限定全局变量的作用域。
#include
#include
static int num = 10; //一旦一个全局变量在定义时加上了static限定,这时,static会把这个变量的作用域限定,便只能在本文件中使用,不能在本文件之外的c文件中使用(即使在其他文件中加上extern也不行)
int data = 101; //结合 extern 可以跨文件使用,跨文件的作用域
void print()
{
printf("\n%d\n", num);
}
void main2()
{
print();
printf("%d\n", num);
getchar();
}
/*
我们知道,一个大的程序,会由多个c文件构成,这些c文件是属于同一个程序的。
那么,如何在一个文件中使用另一个文件中定义的变量呢??
C语言为了解决这个问题:引出了 全局作用域的概念
即:
在一个文件中定义的全局变量,具有全局作用域,当在本程序的其他文件中使用时,只需加上 extern外部引用声明即可。
所以:我们可以看出:
全局变量的作用域是:在整个的程序中的,在整个程序的其他文件中,是可以跨文件使用的。
但是,为了避免跨文件所带来的问题,C语言也引出了一个 文件作用域来限定全局变量的作用域。
*/
成对的大括号及内部的语句组成了程序块。
函数体、选择和循环结构中都要用大括号表示边界
大括号内定义的变量,必须紧跟在左大括号后面,其作用范围是从定义处直到配对的右大括号之前。
若多层大括号中出现重名变量,外层同名变量在内存中被屏蔽不起作用。