一、程序生成过程
首先我们编写源代码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. 显示代码行号
工具 –> 选项 –>勾选行号