【C/C++】程序生成过程及调试

  • Post author:
  • Post category:其他




一、程序生成过程

在这里插入图片描述

首先我们编写源代码f.c 经过编译后,我们会得到 f.obj 文件,f.obj 文件中均为0101 类型的机器码,也就是 cpu 能够识别的微指令(英特尔的机器指令)去运行,f.obj 文件并不能执行,

因为我们调用的

标准库函数

的代码并不在 f.obj 文件中

,例如上面 main.c 的printf 函数,printf 函数的代码并不在 main.obj 中,这时经过链接,就得到可执行文件 f.exe,了解这个编译过程,对于我们后面编写程序遇到编译错误后,分析编译错误,我们

可以区分清楚是编译错误,还是链接错误



在这里插入图片描述



1.预编译指令

#include 头文件包含
#define 宏定义

右侧项目代码->属性->配置属性->c/c+±>预编译器->预处理到文件(是)

预处理c和C++源文件并将预处理的输出写到文件。此选项取消编译,因此不会生成.obj文件

在这里插入图片描述



二、VS 调试



1. 调试窗口


打断点 –> 按

F5

运行 –> 看监视、输出、调用堆栈、内存窗口


在这里插入图片描述


按钮 1



单步执行按钮

,快捷键是

F10

,点击该按钮一次,程序会向下执行一步;

按钮 2



继续执行按钮

,点击后,程序会执行到最后,或者执行到下一个断点,

按钮3

是停止执行按钮,点击后程序直接停止运行。(左键点击断点就可以取消断点)

在断点调试状态下,我们点击菜单栏的

调试

,选择

窗口

,然后依次点击

监视,调用堆栈,内存

,三个调试窗口,调用堆栈,监视,内存窗口对于后面我们

调试程序及理解程序执行原理都至关重要

,这次调出以后,后面每次调试程序都会自动弹出。



2. 显示代码行号

工具 –> 选项 –>勾选行号



版权声明:本文为m0_46566336原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。