关键解决点是使用extern,还有就是理解C++声明、定义、赋值。
声明是告诉程序,这个地方有个变量,定义是为变量开辟空间,赋值是开辟空间后给值
一、基础用法
例如下面这个a.cpp程序:
#include "myhead.h"
#include <iostream>
int main()
{
std::cout << a;
}
我明明没有定义a,为什么没有报错呢?原因在于我引入了我自定义的头文件#include "myhead.h",下面是头文件中内容:
extern int a;
我们知道include作用只是代码搬运作用,即include作用是把myhead.h文件内代码复制到a.cpp。那么其实两个文件可以合并为:
#include <iostream>
extern int a;
int main()
{
std::cout << a;
}
上面代码与平时代码还是有些区别就是多了一个extern,extern int a;其实就是声明,并没有定义,a真正在哪定义呢?可能是在另一个thrid.c文件中,thrid.cpp文件内容可能是:
int a;
到此为止a就是一个全局变量。为何是全局变量呢,例如a.c文件它直接引入一个#include "myhead.h"就直接用变量a的值了,假如再创