https://www.zhihu.com/question/270945429
首先.h和.cpp文件在编译器中是几乎一样不做区分的都是文件而已。
其次#include的作用就相当于把引入文件中的所有内容完整的复制到当前位置(就像ctrl+a,c,v)。
最后,#include的文件中的内容大多数的时候都是一些变量的声明或者函数的声明,提供的是一个符号,而不是具体占内存的定义(记住是声明只是一个符号,在最终链接的时候会链接到这个符号定义的地方)。
所以,个人浅薄的编程经验就是哪里需要用到的时候就通过include把符号引入进来(没写过具较大的工程,工作上的规范不了解),让下文需要用到这个符号的地方,能在文件中找到这个符号是什么就好了,哪怕只是声明而不是定义这个符号是什么也没关系,声明的符号最终也会通过链接找到定义。
比如下面三段程序:
int a = b;//不知道b是什么,会报未定义的错
int b;
int a = b;//上面定义b是一个int型变量,知道是什么就没事了
extern int b;
int a = b; //上面声明b是一个int型变量,最终会通过链接在别的文件找到定义,所以也没问题
include头文件的作用就类似于第三段程序的样子
标签:文件,定义,符号,int,C++,cpp,include,声明 From: https://www.cnblogs.com/sggggr/p/16938454.html