C语言学习笔记----伊能C语言学习笔记----如何在一个文件中使用另一个文件中定义的变量呢??



我们知道,一个大的程序,会由多个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语言也引出了一个 文件作用域来限定全局变量的作用域。


*/


成对的大括号及内部的语句组成了程序块。

函数体、选择和循环结构中都要用大括号表示边界


大括号内定义的变量,必须紧跟在左大括号后面,其作用范围是从定义处直到配对的右大括号之前。

若多层大括号中出现重名变量,外层同名变量在内存中被屏蔽不起作用。


你可能感兴趣的:(C语言学习笔记)