.h是头文件,.c/.cpp是源文件
头文件extern变量的创建和释放
创建于某一cpp第一次引用头文件的时候,我们将找到对应的cpp实现,创建加载进来备用
释放于该cpp运行结束
头文件(共享变量)
定义也是声明
根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义:
(1)声明必须使用extern关键字;(2)不能给变量赋初值
http://t.zoukankan.com/huibin-benteng-p-5043747.html
在头文件a.h中声明,在a.cpp中实现。
当然我们也可以把.h文件,汇编生成二进制文件。
但是如果这样的话,我们链接时,会出现重复定义
// 这样是不行的
g++ a.h b.cpp c.cpp -o b
// b.cpp c.cpp 都包含了 a.h
而我们应该是,在头文件中声明,在另一个cpp,一般我们命名为a.cpp中实现(不含main),这样b.cpp,c.cpp都是访问的a.cpp中的函数,不存在重复定义的。
g++ a.cpp b.cpp c.cpp -o c
https://zhuanlan.zhihu.com/p/81681440