(一)C++什么时候需要将#include写到头文件,什么时候需要写到cpp文件?

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头文件的作用就类似于第三段程序的样子

posted @ 2022-11-30 14:50  sgggr  阅读(316)  评论(0编辑  收藏  举报