c++中的编译、链接和执行

本文介绍了C++中的编译、链接和执行过程。编译涉及预处理、编译和链接三个阶段,预处理处理宏定义和头文件,编译将高级语言转换为机器语言,链接则解决模块间符号引用问题。文章还讨论了静态链接、载入时动态链接和运行时动态链接,并解释了在C++中调用C编译的函数为何需要extern "C"声明。
摘要由CSDN通过智能技术生成

1.编译与链接的区别:

预处理:处理宏定义指令#define 、头文件#include等

#include<filename> ,尖括号表示系统提供的头文件,直接去系统目录查找;

#include“animal.h”,双引号表示自己编写的头文件,先在工程目录里面查找,找不到再到系统目录查找。

预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同,经过预编译后产生完整的源文件,将此文件作为编译程序的输入而被翻译成为机器指令

编译:将高级语言(如c++)转换为机器语言(二进制)

编译过程中,每个源文件进行单独编译

编译技巧:编译的作用是对源程序进行词法检查、语法检查和中间代码生成。编译时对文件中的全部内容进行检查,如果有语法错误,编译结束后会显示出所有的编译出错信息,开发人员可以根据错误提示修改程序。对于新写的一个保护多个文件的工程,一开始采用源文件分别编译,这样容易发现每个源文件的自身错误,限定了错误的范围,如果一开始就采用全部编译,多个源文件可能会产生许多错误,无形中增加了开发难度。如果每个

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值