https://www.cnblogs.com/wanghetao/p/4492582.html
https://www.cnblogs.com/Dageking/p/3185230.html
http://www.cnblogs.com/catch/p/4314256.html:初始化
https://www.cnblogs.com/tshua/p/5741009.html
编译单元-作用域
https://www.cnblogs.com/wllwqdeai/p/11147412.html
一、全局变量
1.声明
https://www.cnblogs.com/wanghetao/p/4492582.html
头文件.h 中申明;
1)需要加extern么?在函数之外,加不加都默认是全局变量,不过不加extern,声明的同时,默认定义,这样被多次包含时,会导致多重定义;
2)宏名有效范围!!
/*xx头文件*/
#ifndef _XX_头文件.H
#define _XX_头文件.H
int A;
#endif
那么,很糟糕的是,这里的int A是个全局变量的定义,所以如果这个头文件被多次引用的话,你的A会被重复定义,显然语法上错了。只不过有了这个#ifndef的条件编译,所以能保证你的头文件只被引用一次,不过也许还是不会出岔子,但若多个c文件包含这个头文件时还是会出错的,因为宏名有效范围仅限于本c源文件,所以在这多个c文件编译时是不会出错的,但在链接时就会报错,说你多处定义了同一个变量,
也可以在任意cpp中函数外声明;
2.初始化???何时初始化???
全局变量的初始化要在 main 函数执行前完成,常识无疑;????
可以在任意cpp中函数外部定义,仅能定义一次;别的cpp中可以在函数外extern声明;
3.访问
1)include声明了全局变量的.h文件;
2)如果不包含,在每个cpp中调用全局变量或全局函数之前,先extern ;
4.修改
只能在函数内部修改全局变量!不过在函数外部,那就是全局变量作用域,全局变量域可以调用变量么?(不调用怎么修改)
5.const修饰全局变量
https://www.cnblogs.com/wanghetao/p/4492582.html
const +全局变量:跟static相同的特性,即只能作用于本作用域;(一个cpp中定义的const全局变量,在另一个cpp中extern无法访问)
external +const +全局变量:同external+全局变量,即其他编译单元可以extern访问,声明格式得相同;(一个cpp中定义的extern+const+全局变量,在另一个cpp中extern声明后可以访问;)
二、全局函数
https://baike.baidu.com/item/全局函数/10185428?fr=aladdin