首页 > 编程语言 >(一)C++什么时候需要将#include写到头文件,什么时候需要写到cpp文件?

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

时间:2022-11-30 15:03:31浏览次数:78  
标签:文件 定义 符号 int C++ cpp include 声明

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

相关文章

  • uniapp实现点击打文件
    常用场景:登录时服务协议and隐私政策等uni.downloadFile({ url:'文件路径(建议使用服务器地址)', filePath:wx.env.USER_DATA_PATH+'/'+'自定义.pdf', //......
  • 求超大文件上传方案( HTML5 )
    ​文件夹数据库处理逻辑public class DbFolder{    JSONObjectroot;       public DbFolder()    {        this.root= new JSONOb......
  • Win10 局域网内与Mac共享文件夹
    win1064bit+MacOSMonterey12.6.1Win10设置控制面板里打开共享新建一个共享文件夹,右键属性设置共享关闭防火墙Mac设置打开访达>前往>链接服务......
  • ArcObjects SDK开发 008 从mxd地图文件说起
    1、Mxd文件介绍ArcGIS的地图文件为.mxd扩展名。Mxd文件的是有版本的,和ArcGIS的版本对应。可以在ArcMap中的File-SaveACopy,保存一个地图拷贝的时候选择Mxd文件的版本,支持......
  • (4)SpringMVC核心配置文件详解
    在上一篇文章中,我们从DispatcherServlet谈起,最终为读者详细分析了SpringMVC的初始化主线的全部过程。整个初始化主线的研究,其实始终围绕着DispatcherServlet、WebApplicatio......
  • Nginx搭建文件下载服务器
    因为自动化测试的时候想通过链接来下载app然后安装,公司的下载是走蒲公英的里边的sign一会儿就会过期,所以决定通过自己搭一个下载服务修改Nginx的配置注意,我的资源放在这......
  • C++ 不知算法系列之初识动态规划算法思想
    1.概述动态规划算法应用非常之广泛。对于算法学习者而言,不跨过动态规划这道门,不算真正了解算法。初接触动态规划者,理解其思想精髓会存在一定的难度,本文将通过一个案例,抽......
  • 求超大文件上传方案( SpringBoot )
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上......
  • PHP设计超级好用的文件上传处理类一 (37)
    <?phpclassFileUpload{private$filepath;//指定上传文件保存的路径private$allowtype=array('gif','jpg','png','jpeg');//充许上传文件......
  • 读写BMP文件
    读写BMP文件http://blog.csdn.net/dege169/article/details/6210971......