详解C语言六——如何调试你的C语言代码(Visual Studio 2019及以上版本)

简介: 详解C语言六——如何调试你的C语言代码(Visual Studio 2019及以上版本)

前言


会写代码的同时也要会调试自己的代码,当代码出现错误时要想到去尝试调试一下代码,调试起来看到底哪里出了问题。这篇文章就简单讲解一下如何去调试代码。


一、如何通俗的理解“调试”这个词语的意思?


简单来说,调试就是修改代码中语法错误和逻辑错误的过程。


二、Debug版本和Release版本的讲解与区别


我们首先打开编译器(以vs2019为例)。


我们可以看到这里有两个选项,分别是Debug和Release。

Debug版本:是调试版本,便于程序员调试程序。

Release版本: 称为发布版本,代码大小和运行速度上都是最优的,以便用户很好地使用。

下面简单解释一下两个版本的区别。

我们首先让代码在这个两个版本下运行后,打开文件的路径来对比看一下。


可以明显看到,生成的.exe文件大小明显不一样,而且Debug版本下的文件大小明显要大于Release版本的。所以Release版本运行速度上是最优的,以便用户很好地使用。

所以,我们平时写代码为了方便调试是要用Debug版本的,当我们写完并调试完代码,把代码发给用户的时候,就给用户发Release版本的。

(其实他们两个版本之间还有些差距,我们这里先学习这些就可以了)


三丶调试常用的快捷键


F9

F9的作用是创造和取消断点,断点的作用是可以让程序在自己像要的地方停下来,比如我想调试第100行代码,但是代码是从第1行开始调试的,我就可以在第100行设置断点,让程序开始调试后直接跳到第100行,避免了一行一行调试(太麻烦)。

举例:

第五行红色的圆圈就是断点。

这与样我们开始调试后就直接跳到第五行了。避免了一行一行的麻烦。


F5

开始调试的快捷键,如果你的代码没问题,屏幕就会一闪而过,非常快。

它可以直接跳到下一个断点处,所以经常与F9连用。两个键位配合非常好用。这个可以自己尝试一下。


F10

逐个过程开始调试,这个过程可能是一条语句,也可能是一个函数。(但F10无法进入到函数内部调试)


F11

逐语句开始调试,就是每次都执行一条语句。(但是这个快捷键可以使我们调试进入函数内部。)


Ctrl + F5

开始执行不调试,如果你想让程序直接运行起来而不调试,就可以直接使用Ctrl + F5。


其实这些快捷键在调试窗口都有显示。

我们自己要多训练调试自己的代码。


四丶调试时如何查看程序中的一些信息(如变量当前的值)


我们在调试窗口可以看到如下的几个选项

注意:一定是代码开始调试后才能观察到这些选项。

下面我们一起学习一下比较常用的几个。

1.我们来看这个监视窗口

我们可以在这个里面输入我们想要观察的值,如变量等,随着调试过程,这些值也会相应跟着改变。

2.监视下面那个自动窗口其实就是我们不用输入值了而已,它会自动根据代码的调试来显示出相应的值,但这个自动窗口在代码比较多时不太方便,我们不经常用。

3.内存

还有内存窗口,我们可以通过这个窗口来看当前变量的地址。


在上方输入&+变量名,下方就会显示出地址。

反汇编和寄存器目前来说我们不常用,这里就先不学了。


总结


本篇文章简单学习了如何去调试自己的代码,这提高了我们自己分析错误代码的能力。

本篇文章内容结束,感谢大家观看。如果意见或建议,可以在评论区留言,您的点赞是我更新的动力。我们下篇文章再见。

目录
相关文章
|
30天前
|
存储 搜索推荐 C语言
深入C语言指针,使代码更加灵活(二)
深入C语言指针,使代码更加灵活(二)
|
30天前
|
存储 程序员 编译器
深入C语言指针,使代码更加灵活(一)
深入C语言指针,使代码更加灵活(一)
|
30天前
|
C语言
深入C语言指针,使代码更加灵活(三)
深入C语言指针,使代码更加灵活(三)
深入C语言指针,使代码更加灵活(三)
|
2月前
|
安全 C语言
在C语言中,正确使用运算符能提升代码的可读性和效率
在C语言中,运算符的使用需要注意优先级、结合性、自增自减的形式、逻辑运算的短路特性、位运算的类型、条件运算的可读性、类型转换以及使用括号来明确运算顺序。掌握这些注意事项可以帮助编写出更安全和高效的代码。
47 4
|
29天前
|
C语言
C语言调试
C语言调试
14 0
|
1月前
|
C语言
C语言练习题代码
C语言练习题代码
|
2月前
|
存储 算法 C语言
C语言手撕实战代码_二叉排序树(二叉搜索树)_构建_删除_插入操作详解
这份二叉排序树习题集涵盖了二叉搜索树(BST)的基本操作,包括构建、查找、删除等核心功能。通过多个具体示例,如构建BST、查找节点所在层数、删除特定节点及查找小于某个关键字的所有节点等,帮助读者深入理解二叉排序树的工作原理与应用技巧。此外,还介绍了如何将一棵二叉树分解为两棵满足特定条件的BST,以及删除所有关键字小于指定值的节点等高级操作。每个题目均配有详细解释与代码实现,便于学习与实践。
|
2月前
|
存储 算法 C语言
C语言手撕实战代码_二叉树_构造二叉树_层序遍历二叉树_二叉树深度的超详细代码实现
这段代码和文本介绍了一系列二叉树相关的问题及其解决方案。其中包括根据前序和中序序列构建二叉树、通过层次遍历序列和中序序列创建二叉树、计算二叉树节点数量、叶子节点数量、度为1的节点数量、二叉树高度、特定节点子树深度、判断两棵树是否相似、将叶子节点链接成双向链表、计算算术表达式的值、判断是否为完全二叉树以及求二叉树的最大宽度等。每道题目均提供了详细的算法思路及相应的C/C++代码实现,帮助读者理解和掌握二叉树的基本操作与应用。
|
2月前
|
存储 算法 C语言
C语言手撕实战代码_循环单链表和循环双链表
本文档详细介绍了用C语言实现循环单链表和循环双链表的相关算法。包括循环单链表的建立、逆转、左移、拆分及合并等操作;以及双链表的建立、遍历、排序和循环双链表的重组。通过具体示例和代码片段,展示了每种算法的实现思路与步骤,帮助读者深入理解并掌握这些数据结构的基本操作方法。
|
2月前
|
算法 C语言 开发者
C语言手撕实战代码_单链表
本文档详细介绍了使用C语言实现单链表的各种基本操作和经典算法。内容涵盖单链表的构建、插入、查找、合并及特殊操作,如头插法和尾插法构建单链表、插入元素、查找倒数第m个节点、合并两个有序链表等。每部分均配有详细的代码示例和注释,帮助读者更好地理解和掌握单链表的编程技巧。此外,还提供了判断子链、查找公共后缀等进阶题目,适合初学者和有一定基础的开发者学习参考。
下一篇
无影云桌面