头文件和源文件的关系

本文介绍了头文件与源文件在C++编程中的关系,包括如何通过#include指令关联头文件,以及编译和链接过程中源文件如何找到函数实现。讨论了声明与定义的区别,以及头文件应包含的内容和避免包含的内容。
摘要由CSDN通过智能技术生成

一、源文件如何根据#include来关联头文件
1,系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。
#include <xxx.h>
2,用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定)中查找,最后在系统文件中查找。
#include “xxx.h”
二、头文件如何来关联源文件
    这个问题实际上是说,已知头文件“a.h”声明了一系列函数,“b.cpp”中实现了这些函数,那么如果我想在“c.cpp”中使用“a.h”中声明的这些在“b.cpp”中实现的函数,通常都是在“c.cpp”中使用#include “a.h”,那么c.cpp是怎样找到b.cpp中的实现呢?
    其实.cpp和.h文件名称没有任何直接关系,很多编译器都可以接受其他扩展名。比如偶现在看到偶们公司的源代码,.cpp文件由.cc文件替代了。
    在Turbo C中,采用命令行方式进行编译,命令行参数为文件的名称,默认的是.cpp和.h,但是也可以自定义为.xxx等等。
    谭浩强老师的《C程序设计》一书中提到,编译器预处理时,要对#include命令进行“文件包含处理”:将file2.c的全部内容复制到#include “file2.c”处。这也正说明了,为什么很多编译器并不care到底这个文件的后缀名是什么----因为#include预处理就是完成了一个“复制并插入代码”的工作。
    编译的时候,并不会去找b.cpp文件中的函数实现,只有在link的时候才进行这个工作。我们在b.cpp或c.cpp中用#include “a.h”实际上是

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在编写代码时,通常我们会将程序的不同部分分别放在头文件源文件中。 头文件通常用.h作为文件扩展名,包含了函数和变量的声明。头文件中声明了函数的名称和参数类型,但没有具体的实现代码。编译器在编译过程中会检查头文件,以确保函数被正确地调用。 源文件通常用.c作为文件扩展名,包含了函数的具体实现代码。源文件中实现了头文件中声明的函数,并可以包含其他的库文件和头文件。 在提供的代码示例中,main.c是一个源文件,它包含了程序的入口函数main(),并在其中调用了myprint()函数。而myheadfile.c是另一个源文件,它包含了myprint()函数的具体实现代码。 而在vscode中,我们可以将头文件源文件分别放置在不同的文件中,然后在需要使用的地方使用#include指令来导入头文件。这样可以提高代码的可读性和可维护性,并且可以更好地组织代码结构。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [VScode中添加头文件源文件的方法](https://blog.csdn.net/T1cH9/article/details/124787711)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值