【C语言】实用调试技巧与const函数提升代码健壮性
来源:http://www.tudoupe.com时间:2022-05-03
大家好 我是作者 我对大友很生气
Madonna Otomo的个人网站。
你介意我们不迷路 彼此亲近吗?
福建最近下雨了,外面冷吗?
我希望有更好的一天离开这里。
在 vs 上一些基本的调试
- 一,什么是虫子吗?
- 二,什么是调试?它有多大意义?
- 二.1 你在调试什么?
- 2.2 基本调试步骤
- 3.3 两项调试和释放导言
- 三. Windows 环境调试概览
- 三.1 建立调试环境
- 3.2 学会快捷键
- 三. 检查关于调试的最新程序信息 。
- 四,为了取得进步,多做点工作,努力解决困难。
- 五. 几个调试实例
- 5.1 实例一
- 5.2 实例二
- 六. 如何写好(容易调试)代码。
- 6.1 良好编码:
- 6.2 示范:
- assert函数
- const修改
- const修饰指针
- 小型演习利用上述信息来完成 My_streen 函数。
- 七. 经常发生方案规划错误
- 7.1 编译型错误
- 7.2 链接型错误
- 7.3 运行时错误
一,什么是虫子吗?
初步调查结果造成计算机错误,这是第一个由飞蛾引入计算机的计算机软件故障。
二,什么是调试?它有多大意义?
必须记录所发生的一切,如果没有罪行,就没有必要隐瞒,如果没有良心,就没有证据。
需要掩盖,有迹象, 指标越多, 越简单,这就是逻辑。
遵循这条道路是一种犯罪,而违背这条道路就是真理。
良好的编码器也是一个很好的调查员。
每一次调试会议都是试图解决问题。
我们怎么写代码?

我们如何处理出现的问题?
因为迷信的调戏而被拒绝!
二.1 你在调试什么?
检测和减少计算机程序或电气仪表设备中的程序称为调试(英文:调试/调试)。
错误的一个过程。
2.2 基本调试步骤
- 发现程序错误的存在
- 错误的偏差等值, 消除等 。
- 确定错误产生的原因
- 提出更正错误的备选办法
- 纠正软件错误后重新测试 。
3.3 两项调试和释放导言
Debug通常称为调试版本 它包含调试信息,但并不优化使调试程序更容易为程序员所用。
称为 " 编号 " 的释放*发布版本 它经常得到改进,使软件在代码大小和执行速度方面是理想的,使用户能够很好地利用它。
三. Windows 环境调试概览
三.1 建立调试环境
选择环境中的调试选项以正确调试代码 。
3.2 学会快捷键
以下是最常用的捷径:
F5
开始调试, 通常用于跳转到下一个断点 。
F9
创建断点和取消断点
分级厅发挥着关键作用,因为可以在过程的任何时候设定分级厅。
这将使程序在预定时停止,然后分阶段实施。
程序在该职位上实施断点的做法将终止,而首要工作是避免重复调试。
中断点窗口:中断点也可以插入整个程序执行过程,可以取消或停止如下:
如果我们运行程序一万次 并且认为第100次我们会有问题, 我们是否应该一劳永逸地执行它, f10, f11?
显然,这不是理想的。你可以在断点后直接设定条件。
F10
按程序进行的程序通常用于处理函数或声明可以援引的程序。
当您遇到函数时,您要直截了当,并且不要在代码中输入任何调试。
F11
逐项声明, 每次都是一则声明, 然而这条捷径让我们的行刑逻辑 能够包含在功能内( 这很重要 ) 。
长用的)。
CTRL + F5
如果您想要应用程序运行而不被调试, 启动时不要调试 。
我将采取更多的捷径。
三. 检查关于调试的最新程序信息 。
一定是要在程序执行中如果有一个断点,或者如果有一个断点,或者如果有一个断点,或者有一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者一个断点,或者
‘’88
使用观察窗口可以观察到某些合理的短语。
可自动看到的数据在自动窗口中显示。
观察窗户越来越常见。
本地变量: 当程序执行到当前位置时, 环境的本地变量向上和向下
内存:
记忆数据是16英尺长的。
汇编者将案文分为两部分。

反向 : (从右键单击菜单中选择反向)
这是一个汇编代码 已经被翻译成所有的 c语言代码。

**调用堆栈 **
保持从上到下对组件的注意。 事件以顶端的结束结束 。 @ info: whatsthis
四,为了取得进步,多做点工作,努力解决困难。
- 必须精通调试程序。
- 初生者可以花80%的时间创建代码,20%的时间调试,而程序员可以花20%的时间写作。
- 程序,但调试需要80%的时间。
- 我们所谈论的只是一些基本的调试
- 今后可能会出现复杂的调试情况,例如调试多线应用程序。
- 更多地使用捷径来提高效率。
五. 几个调试实例
5.1 实例一
获得代码:请求 1 + 2 + 3 + n! 不考虑溢流。
如果我们当时是3岁,我们本来预期出口9个,但实际产量为15个。
我们必须在这里提出我们的问题。
- 第一步是猜测问题的原因,最好先初步确定问题的潜在原因。
- 在现实中,需要进行亲手检查。
- 当我们调试时 我们知道我们在做什么
在调试过程中,发现Rit在修理时没有清空。
5.2 实例二
典型的阵列在此结束 。
以下是越界赋值
再执行一步


i 和 Arr 数组之间是否有两个空地址?
空空一个或两个,或更多,或更多,甚至更多,也许不可行,只是巧合的是,这个问题是空白的,主要是因为汇编者使用2019年,而汇编者则使用2019年。
修改方法
如果我是首先定义Arr,我就不会犯这个错误。
因为储存区是利用高位数和低位数空间生成的。
然而,人们仍然会说,数字集团跨越边界,但令人惊讶的是,它们以前没有这样做,它们如何能够这样做?

哈哈,之前的代码还没有更新 因为打印他的死亡循环是没有错的 如果是错的话,就是错的
六. 如何写好(容易调试)代码。
6.1 良好编码:
- 代码运行正常
- bug很少
- 效率高
- 可读性高
- 可维护性高
- 注释清晰
- 文档齐全
大众编码方法包括:
- 使用assert
- 尽量使用const
- 养成良好的编码风格
- 添加必要的注释
- 避免编码的陷阱。
6.2 示范:
spcy 是一个模拟实现库函数 。
Strcpy 函数运行如下 。
以下是一些我们为我们自己创造的模拟。
就这么完了吗?
因为最高代码有一个Const, 并返回字符* 类型, 而当一个空值被提供时, My_strcpy (NULL, arr2) 代码将会崩溃 。
因此,至少可以优化三样东西。
assert函数
当发现一个空间值时,它的行为方式相似,提供了错误的行号。
const修改
为什么包括康斯特?
如果在前一个问题(*src++ = * test++)期间的条件得到满足,
我们试图交换的价值是倒置的, 导致交易中一连串的跨界异常, 当我们写出代码时, 编译者是对的, 所以我们遇到很多麻烦 来回的改变。
const修饰指针
仔细观察以下代码
这个代码与Const的原意相矛盾 无法改变
竟然用指针改掉了
总结助记:
小型演习利用上述信息来完成 My_streen 函数。
七. 经常发生方案规划错误
7.1 编译型错误
立即查看错误提示信息( 双击), 然后纠正问题。 它很简单 。
7.2 链接型错误
检查错误提示信息, 在错误信息中发现身份, 主要是在代码中, 然后查找问题。 识别符通常是错误的名称 。
存在或者拼写错误。
7.3 运行时错误
通过调试渐进定位。 这是最困难的方面 。
上一篇:安装win10系统引导错误
下一篇:win10查看系统配置命令
相关新闻
- 2023-04-16 2台电脑怎么共享(2台电脑怎么共享
- 2023-04-16 主板检测卡代码(电脑主板检测卡代
- 2023-04-16 dnf未响应(dnf未响应老是上不去)
- 2023-04-16 ppoe(pppoe拨号上网)
- 2023-04-16 网速不稳定(网速不稳定是路由器的
- 2023-04-16 wds状态(Wds状态成功)
- 2023-04-16 光标键(光标键不动了怎么办)
- 2023-04-16 电脑提速(电脑提速100倍的方法)
- 2023-04-16 切换用户(切换用户怎么切换回来
- 2023-04-16 数据包是什么(产品数据包是什么
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|



