只说关于在头文件中的使用:
1、static定义变量假如放在头文件中:
eg: static int g_num = 100;
那么定义的变量只在当前引用它头文件的源文件中生效,各个引用它头文件的源文件使用相关独立,不存在交集。
即:如果在一个头文件中声明:
static int g_num= 100;
那么会为每个包含该头文件的cpp都创建一个全局变量,但他们都是独立的.
但是这种方法不常用,也不推荐。因为这样写意味着保护该头文件的所有源文件都包含了一个同名但不同作用域的变量,使用不明确,是的当前对该变量分配了内存,但是有可能不使用。
2、如果想让多个源文件同时使用一个变量,那么就用到了extern 关键字
eg: extern int g_sum;
用法:在头文件中像上面一样声明,然后在任意一个包含它的源文件中定义既可:
eg:int g_sum = 100;其他包含此头文件的都可以共享一个全局变量。
参考blog:
https://blog.csdn.net/qq_17368865/article/details/79110149;
https://www.cnblogs.com/zplutor/archive/2011/08/06/2129401.html;