【入门级-C++程序设计:1、程序基本概念-编辑、编译、解释、调试的概念】

一、编辑(Editing)
1、 概念
编辑是指使用文本编辑器或集成开发环境(IDE)创建或修改程序源代码的过程。
2、使用的编辑工具
文本编辑器:如 VS Code、Notepad++ 等。
集成开发环境(IDE):如 Visual Studio、CLion、Eclipse 等,集成了编辑、编译、调试等功能。
3、主要工作
编写代码逻辑,添加注释以提高可读性,格式化代码(缩进、对齐等)。

二、编译(Compiling)

  1. 概念
    编译是将高级语言源代码转换为机器语言(二进制代码)的过程。编译器会检查代码语法错误,并生成可执行文件。
    2、编译的步骤(预处理、编译、汇编、链接)
    预处理(Preprocessing)
    作用:处理源代码中的预处理指令(以 # 开头),如 #include(引入头文件)、#define(宏定义)、#ifdef(条件编译)等。
    结果:生成纯 C++ 代码(无预处理指令),文件后缀通常为 .i(GCC 环境)。
    编译(Compilation)
    作用:将预处理后的代码转换为汇编语言。
    结果:生成汇编代码文件,后缀通常为 .s。
    特点:此阶段会进行语法检查、语义分析(如变量类型匹配),若代码有误(如语法错误),会在此阶段报错。
    汇编(Assembly)
    作用:将汇编代码转换为机器码(二进制指令)。
    结果:生成目标文件(Object File),后缀通常为 .o(Linux/macOS)或 .obj(Windows)。
    特点:目标文件是二进制文件,但尚未完成链接,无法直接执行。
    链接(Linking)
    作用:将多个目标文件(如自己编写的代码生成的 .o 文件、标准库或第三方库的目标文件)合并,解决符号引用(如函数调用、全局变量),最终生成可执行文件。
    结果:生成可执行文件(无后缀,Linux/macOS;.exe,Windows)。
    静态链接和动态链接的区别
    静态链接:将库文件的代码直接嵌入可执行文件,生成的文件较大,但无需依赖外部库。
    动态链接:仅在可执行文件中记录库的引用,运行时才加载外部动态库(如 .so、.dll),文件较小,但需确保运行环境有对应库。
    3、示例(C++)

使用g++编译C++代码

g++ main.cpp -o my_program # 生成可执行文件my_program

三、解释(Interpreting)
1、概念
解释是指逐行执行源代码的过程,无需提前编译。解释器直接读取代码并执行相应操作。
2、解释型语言
Python、JavaScript、Ruby、PHP 等。
3、编译与解释的区别
在执行流程上,编译型语言是先由源代码经过编译器处理,生成机器码文件,之后运行的就是这份机器码;而解释型语言则是源代码直接由解释器处理,逐行进行解析并执行,不会生成独立的机器码文件。​
就执行前的准备而言,编译型语言需要先完成编译,生成可执行的机器码文件,这个过程耗时较长,但只需要进行一次;解释型语言则无需编译步骤,直接就能运行,不过每次运行都需要重新对源代码进行解析。​
从运行速度来看,编译型语言因为直接执行机器码,能高效地与硬件交互,所以运行速度较快;解释型语言由于要逐行解析源代码,这个额外的过程会耗费时间,且运行效率依赖于解释器,所以运行速度较慢。​
在跨平台性方面,编译型语言的机器码与操作系统和硬件紧密绑定,要在不同平台运行,需要重新编译;解释型语言因为有解释器屏蔽了硬件差异,同一份源代码只要有对应平台的解释器就能运行,跨平台性较好。​
对于调试便捷性,编译型语言在修改代码后,需要重新编译才能看到效果,且错误提示相对间接,调试不太方便;解释型语言修改后可以直接运行,错误定位直观,调试更为便捷。​
在典型应用场景上,编译型语言适合用于系统级开发、高性能程序开发,比如游戏引擎、驱动程序等;解释型语言则适用于快速开发、脚本任务,像网页交互、自动化脚本等场景。​

四、调试(Debugging)

  1. 概念
    调试是定位和修复程序中 错误(bug)的过程。通过设置断点、监视变量值、单步执行等方式,帮助程序员理解程序运行流程并找出问题。
  2. 常用调试工具
    调试器:如 GDB(命令行)、LLDB、Visual Studio Debugger 等。
    IDE 集成调试:如 VS Code 的调试面板、CLion 的断点功能。
    日志输出:在代码中插入 print 或 log 语句。
  3. 调试步骤
    复现问题:确定错误出现的条件。
    设置断点:在关键代码行暂停执行。
    检查变量:查看运行时变量的值。
    单步执行:逐行或逐函数执行代码。
    修正错误:根据观察结果修改代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papership

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值