别再“Hello World”编程了

前言

刚开始学C++,一个.cpp文件就够了,类的定义,声明,实现统统都堆在一个文件中,然后编译连接,生成.exe文件,就完成作业了。
但开始接触项目后,需要和别人一起完成一个大作业时,写在同一个main.cpp明显会有些乱套,这时候,就需要分离编译



先了解一下,我们使用的visual studio 2019或者是 DevC++都是怎么将我们编写的.cpp文件变成.exe可执行文件


详细可以看跟我一起写 Makefile(一)




分离编译

分离编译模式是指:一个程序(项目)由若干个.cpp源文件共同实现,而每个源文件单独编译生成.o目标文件,最后将所有目标文件连接起来形成单一.exe可执行文件的过程



将一个项目划分出多个源文件后,逐一编译成目标文件,那这些目标文件又是凭什么相互连接在一起的?

这里就需要知道.h头文件和.cpp源文件的关系了





.h头文件

写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。

而为了防止头文件重复包含,一般头文件会有下面三行代码

#ifndef TEACHER_H
#define TEACHER_H

//代码

#endif // TEACHER_H





.cpp源文件

源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件





预编译


讲实际点,二者的关系就是:

在写a.cpp文件时,需要#include "a.h"

而如果源文件a需要用到源文件b的代码,就在源文件a中进行#include "b.h",而就是靠这个#include,才能在链接时,将所有源文件最终合成一个可执行文件



其中#include叫做编译预处理指令,因为头文件是不能被编译的,可以简单理解成,在a.cpp中的#include "b.h"指令把b.h中的代码在编译前添加到了a.cpp的头部。






预编译指令中,使用<>""的区别:
引号会先在程序所在的路径里找 ,尖括号是从系统的头文件开始找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值