全局变量的声明与定义

全局位置的注意点,就是在全局的位置是不能够写一些执行语句的,只能写一些全局变量的定义,并且初始化的话也只能用常量进行初始化

全局变量的声明与定义_第1张图片

int e=1;这就可以,所以在全局的这个位置,只能用常量进行初始化

对于指针也一样,不要  int * p=(int *)malloc(4);  不可以,用一个变量都不可以,何况用一个函数。 

全局变量的声明与定义_第2张图片

另外,想在全局变量的位置 执行一个printf,打印一个 printf("asd"); 能不能打印???谁调用的它??

全局变量的声明与定义_第3张图片

所以,全局变量的位置》》》除了包含头文件这些预处理指令之外,这块能够写的东西就是全局变量,而且不要用变量初始化,也不能用函数初始化,只能用常量给全局变量初始化,另外全局的位置是不能写执行语句的,这块只认声明和变量的定义。

接下来看全局变量的生命周期:

与程序共存亡。

int e 是在程序加载的时候分配的空间,在程序正式运行之前(在主函数main调用之前)分配的空间。当执行到int a的时候,上面的这些东西都已经分配好了。

全局变量的声明与定义_第4张图片

结束时 关闭程序/关闭软件,才会被释放掉。

接下来说作用域:
因为是全局变量,全局就是整个项目,所有的文件都认识这个 e。

全局变量的声明与定义_第5张图片

 

全局变量的声明与定义_第6张图片

 全局变量的声明与定义_第7张图片

既然声明可以出现多个(int e;),那么一般的把全局变量的声明放在头文件里面,其他的文件一包含头文件就可以了,而定义(int e=12;)只能放在源文件中,定义如果放在头文件中,那么其他文件一包含,e就重定义了。所以全局变量的声明可以放在头文件里,全局变量的定义只能放在.c源文件中。

转载于:https://www.cnblogs.com/dabing0983/p/10569958.html

你可能感兴趣的:(全局变量的声明与定义)