您现在的位置是:C语言初级:十一代码调试技巧 >>正文
C语言初级:十一代码调试技巧
德薄能鲜网8742人已围观
简介❤欢迎大佬访问#xff1a;折枝寄北-CSDN博客。折枝寄北擅长C语言的初级知识,折枝寄北关注python,c++,java,qt,c语言领域.。https://blog.csdn.n...
❤欢迎大佬访问#xff1a;折枝寄北-CSDN博客。折枝寄北擅长C语言的初级知识,折枝寄北关注python,c++,java,qt,c语言领域.。
https://blog.csdn.net/2303_80170533?type=blog。
❤文章属于专栏。https://blog.csdn.net/2303_80170533/category_12794764.html?spm=1001.2014.3001.5482
前言:
在C语言编程的初始阶段,代码调试。是一项至关重要的技能。无论是初学者还是经验丰富的程序员,代码无法按预期运行。此时,掌握一些有效的调试技巧可以显著提高解决问题的效率,使编程过程更加顺畅。
代码调试技巧涵盖了从基本语法错误检查到复杂逻辑问题的调查。这包括使用调试工具(GDB)、添加调试信息(如果打印语句)、设置断点,单步执行代码,检查变量值和内存分配。通过这些方法,开发者可以逐渐缩小问题范围,在代码中定位和修复错误。
掌握良好的代码编写习惯,如模块化设计、清晰的变量命名和合理的注释,在调试过程中也能事半功倍。这些习惯不仅有助于理解代码,还可以让别人在需要的时候快速上手,协助调试。
1.bug是什么?f;
来源ug;文心一言提供的答案)
昆虫起源:计算机科学,“bug“这个词最初指的是实际的昆虫。在计算机发展的早期阶段,如电子管计算机和晶体管计算机时期计算机的物理结构相对庞大而复杂,机器内部布满了复杂的电路和线路。这些环境很容易吸引各种昆虫,尤其是蟑螂、蜘蛛等小昆虫。这些小昆虫有时会爬到电路板上。c;短路或断路,导致计算机故障。因此,工程师们开始用“工程师们开始用”bug“生动地描述昆虫引起的计算机故障。
历史记录。:据说,1945年9月9日,美国哈佛大学Grace Hopper(格蕾丝·霍珀)调试Mark的医生 II计算机时发现了一只死蛾(moth)卡在继电器触点之间,这导致了计算机故障。她用胶带把蛾子粘在日志上上。c;并标注了“First actual case of bug being found"(第一个实际bug案例)。这一事件被广泛认为是“bug“这个词在计算机领域的起源。
2.调试的作用。
调试(英语:Debugging /。 Debug。),也叫除错计算机程序或电子仪器设备中程序的发现和减少 一个错误的过程。
调试步骤。
发现程序错误。
通过隔离和消除来定位错误。
确定错误的原因。
提出纠正错误的解决方案。
纠正程序错误,重新测试。
3.介绍debug和release。
Debug 通常称为调试版。,它包含调试信息,不进行任何优化,方便程序员调试程序。 Release 被称为发布版。,它通常进行各种优化,使程序在代码大小和运行速度上都是最好的 ,使用户能够很好地使用它。
int main(){ int n = 0; int a = 0; scanf("%d %d", &a, &n);//2 5 //计算 int sum = 0; int i = 0; int k = 0; for (i = 0; i < n; i++) { k = k * 10 + a; sum += k; } //打印 printf("%d\n", sum); return 0;}。
Debug环境中上述代码的结果显示:
Release环境中上述代码的结果显示:
所以我们说调试是在Debug版本的环境中,在代码中找到潜在问题的过程
4.windows环境调试介绍
4.1 准备调试环境。
调试代码,选择在Debug环境中进行。
4.2 学会使用快捷键。按f10进入调试,在上图中,我们可以看到如何调试和查看相应的变量和操作步骤。
最常用的快捷键:
F5 启动调试它通常被用来直接跳到下一个断点
F9 创建和取消断点 #xff0c;断点可以设置在程序的任何位置。 这样,程序就可以在想要的位置随意停止执行,然后一步一步执行
F10 过程,通常用于处理过程,一个过程可以是函数调用,或者一个句子。
F11 逐句,每次都要执行一个句子,但是这个快捷键可以让我们的执行逻辑进入函数内部(这是最 长用)。
CTRL + F5 开始执行不调试假如你想让程序在不调试的情况下直接运行,就可以直接使用。
CTRL+F可查询文件中的变量名等。
4.3 检查程序的当前信息。
查看临时变量值 调试开始后,用于观察变量值。
5.如何编写好代码(易于调试)
1. 代码运行正常 2. bug很少 3. 效率高 4. 可读性高 5. 可维护性高 6. 注释清晰 7. 文档齐全。
1. 使用assert()//断言。
2. 尽量使用const
3. 形成良好的编码风格。
4. 添加必要的注释。
5. 避免编码陷阱。
//实现库函数strlen-求字符串长度unsigned int my_strlen(const char * str){ int count = 0; assert(str != NULL); while (*str++ != '\0') { count++; } return count;}int main(){ char arr[] = "abcdef"; printf("%d\n", my_strlen(arr)); return 0;}。
注意:
1. 设计分析参数(命名,类型),设计返回值类型。
2.野指针,空指针危害。
3. 使用assert,assert的作用。
4. 参数部分 const 的使用。
void my_strcpy(char* dest, char* src){ //if (src == NULL || dest == NULL)//防止空指针 //{ // return; //} //断言 表达式可以放在/assert中c;表达式的结果是假的,会报错。 //如果是真的,什么都不会发生 ///assert在release版本中优化 /*assert(src != NULL); assert(dest!= NULL);*/ assert(src && dest); while (*dest++ = *src++)// ASCII码值为0,while循环判断为假,停止 { ; }}。
///const修改指针变量//1.把const放在*的左边,修改指针指向的内容,表示指针指向的内容,指针不能改变////const int* p=#// //2.const放在*的右边,const修改了指针变量本身,// 指针变量本身的内容不能改变,但是指针指向的内容不能改变///int* const p=#//int main()///{ /// /*const int num = 10;// const int* p = #// *p = 20;*/// //printf("%d\n", num);//// return 0;//}。
6.常见的编程错误。
6.常见的编程错误。
1 编译型错误 直接阅读错误提示信息(双击),解决问题。或者可以通过经验来完成。相对简单。
2 链接型错误 查看错误提示信息错误信息中的标识符主要在代码中找到,然后定位问题所在。一般来说,标识符名不是 存在或拼写错误。
3 运行时错误 借助调试逐步定位问题。最难搞。
Tags:
相关文章
小米Xiaomi 15 京东超值优惠5G手机大容量版
C语言初级:十一代码调试技巧...
阅读更多
微信小程序如何制作自己的小程序?手拉手带你入门(适合新手小白观看)
C语言初级:十一代码调试技巧对于初学者来说,,做一个微信小程序总是感觉很高,又怕学不会。但是,今天,我将以最简单、最耐心的方式,一步一步给大家讲清楚!让你知道微信小程序的制...
阅读更多
十大热门生物收集单机游戏排名
C语言初级:十一代码调试技巧当今游戏市场十大热门生物收集单机游戏中,生物收集游戏已成为一种非常流行的类型。这些游戏通常以收集不同类型的生物为主题。玩家需要通过探索、解谜和战斗来收集更多的生物,并将它们放在一起形成一个完整的生态系...
阅读更多