C语言技巧 ----------调试----------程序员必备技能

这篇具有很好参考价值的文章主要介绍了C语言技巧 ----------调试----------程序员必备技能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者前言

 

🎂        ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂

   🎂      作者介绍:                              🎂🎂

       🎂 🎉🎉🎉🎉🎉🎉🎉              🎂

          🎂作者id:老秦包你会,         🎂

简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂

             喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨         🎂🎂🎂🎂🎂🎂🎂🎂

                 🎂个人主页::小小页面🎂

                  🎂gitee页面:秦大大🎂

                   🎂🎂🎂🎂🎂🎂🎂🎂
        🎂  一个爱分享的小博主 欢迎小可爱们前来借鉴🎂

_______________________________________________________

______________________________________________________________________

目录

实用调试技巧

        什么是bug?
        调试是什么?有多重要?
        debug和release的介绍。
        windows环境调试介绍。
        如何写出好(易于调试)的代码。
        编程常见的错误。

-——————————————————————————————————

什么是bug?

计算机硬件或者软件的错误

调试是什么?有多重要?

调试 (英语: Debugging / Debug ),又称除错,是发现和减少计算机程序或电子仪器设备中程序
错误的一个过程。
调试的基本步骤
1. 发现程序错误的存在
2. 以隔离、消除等方式对错误进行定位
3. 确定错误产生的原因
4. 提出纠正错误的解决办法
5. 对程序错误予以改正,重新测试

DebugRelease的介绍。

Debug 通常称为调试版本 ,它包含调试信息,并且不作任何优化,便于程序员调试程序。
Release 称为发布版本 ,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优
的,以便用户很好地使用。
简单理解为Debug是程序员使用的,Release是用户使用的
下面我们使用代码分别利用这两个进行执行

 Debug:

C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言
Release:
C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言

 可以看到两者区别,这里简单的介绍一下这两个

Windows环境调试介绍

快捷键
F5
启动调试,经常用来直接跳到下一个断点处。
F9
创建断点和取消断点
断点 的重要作用,可以在程序的任意位置设置断点。
这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。
C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言

 断点一般配合f5进行运行,跳到下一次断点(逻辑断点),

F10
逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。
F11
逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑 进入函数内部 (这是最
长用的)。
CTRL + F5
开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用

调试的时候查看程序当前信息

C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言

 上图是要调试之后才能查看

C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言

调用堆栈 

反应的是函数的调用逻辑,像栈一样后进先出,反应函数调用的顺序

C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言

多多动手,尝试调试,才能有进步。
一定要熟练掌握调试技巧。
初学者可能 80% 的时间在写代码, 20% 的时间在调试。但是一个程序员可能 20% 的时间在写
程序,但是 80% 的时间在调试。
我们所讲的都是一些简单的调试。
以后可能会出现很复杂调试场景:多线程程序的调试等。
多多使用快捷键,提升效率

地址的使用

1.栈区上内存使用的习惯是:从高地址向低地址使用(先使用高地址再使用低地址)

2.数组随着下标的增长,地址是由低到高变化的

如何写出好(易于调试)的代码

优秀的代码

1. 代码运行正常  2. bug很少  3. 效率高  4. 可读性高    5. 可维护性高    6. 注释清晰     7. 文档齐全
常见的 coding 技巧:
1. 使用 assert
2. 尽量使用 const
3. 养成良好的编码风格
4. 添加必要的注释
5. 避免编码的陷阱。
代码1:
#include<stdio.h>
#include<string.h>
#include<assert.h>
void copy(char arr1[], char arr2[], int sz)
{
	if (arr1 != NULL || arr2 != NULL)
	{
		return;
	}
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		arr1[i] = arr2[i];
	}
}
void copy2(char arr1[], char arr2[])
{

	assert(arr1 != NULL);
	assert(arr2 != NULL);
	int i = 0;
	int j = 0;
	while (arr1[i++] = arr2[j++])
	{
		;
	}
}
int main()
{
	char arr1[] = "123456789";
	char arr2[] = "abcdefg";
	//strcpy(arr1, arr2);
	int sz = sizeof arr2 / sizeof(char);
	//copy(arr1, arr2, sz);
	copy2(NULL, arr2);
	printf("%s", arr1);
	return 0;
}

这里使用了assert.h头文件中的assert(表达式),表达式为假就会报错

计算表达式,当结果为FALSE时,打印诊断消息并中止程序。

C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言

const修饰变量的时候,是在语法层面限制了变量修改,但本质上变量不是常量,是一种不能修改的变量,但是有一种情况,就是通过指针修改

#include<stdio.h>
int main()
{
	const int num = 120;
	int* p = &num;
	*p = 10;
	printf("%d", num);
	return 0;
}

本来const修饰指针变量,使变量不能修改,但是通过指针就能修改,这个不符合我们的预想的

如果const修饰指针变量的就会有两种写法

1. const 放在* 左边

C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言

int const*  p = &num; 这种写法也可以

 可以看出当const放在*前面修饰。修饰的是*p,使*p不能修改

2. const 放在* 右边

C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言

 可以看出当const 放在* 的后面限制的是p,使p不能修改

编程常见的错误

编译型错误

直接看错误提示信息(双击),解决问题。或者凭借经验就可以搞定。相对来说简单。

链接型错误

看错误提示信息,主要在代码中找到错误信息中的标识符,然后定位问题所在。一般是 标识符名不
存在 或者 拼写错误

运行时错误

 借助调试,逐步定位问题。最难搞文章来源地址https://www.toymoban.com/news/detail-640929.html

C语言技巧 ----------调试----------程序员必备技能,开发语言,c语言
有时我们要注意一下是否是未导入头文件,调用函数的函数名有误 

到了这里,关于C语言技巧 ----------调试----------程序员必备技能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解密算法王国:揭秘程序员必备技能(超详细)

    一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。今天就来聊聊这些十分重要的“必抓!”算法吧~ 作为程序员,掌握算法是至关重要的。算法是解决问题和优化程序性能的核心。在这篇博客中,我们将

    2024年02月16日
    浏览(66)
  • 程序员必备的面试技巧

    “程序员必备的面试技巧,就像是编写一段完美的代码一样重要。在面试战场上,我们需要像忍者一样灵活,像侦探一样聪明,还要像无敌铁金刚一样坚定。只有掌握了这些技巧,我们才能在面试的舞台上闪耀光芒,成为那个令HR们心动的程序猿!” 提醒:在发布作品前,请

    2024年01月21日
    浏览(55)
  • C++程序员必备的面试技巧

      “程序员必备的面试技巧,就像是编写一段完美的代码一样重要。在面试战场上,我们需要像忍者一样灵活,像侦探一样聪明,还要像无敌铁金刚一样坚定。只有掌握了这些技巧,我们才能在面试的舞台上闪耀光芒,成为那个令HR们心动的程序猿!” 在准备C++程序员面试时

    2024年02月01日
    浏览(52)
  • “程序员求职攻略:IT技术岗面试的必备技巧“

    人活一世,不在乎朋友多少,不问财富几车,关键看在你最困难的时候,是否有一个伸出援手的人,一颗暖遍全身的心。 在现代社会,IT技术在各行各业的应用越来越广泛,因此IT技术人才也备受重视。作为一名程序员,在求职过程中,面试是我们必须面对和应对的一项重要

    2024年02月14日
    浏览(65)
  • 程序员推荐!JetBrains IDEs使用技巧与必备插件

    JetBrains是耳熟能详的软件开发工具提供商,旗下的IDE集成开发环境被广泛应用于不同的开发领域。本文将向新手介绍JetBrains IDEs的基本知识和常用功能。 什么是JetBrains IDEs? JetBrains IDEs是一套面向软件开发的集成开发环境,可以为Java、Python、PHP、C#、Ruby等多种编程语言提供全

    2024年02月11日
    浏览(44)
  • 程序员必备技巧:.gitignore文件怎么写和最佳实践

    当你在Git仓库上工作时,创建一个.gitignore文件告诉Git在提交更改时忽略哪些文件和目录是很重要的。这可以帮助保持仓库的干净并防止不必要的文件被提交。在这篇博客中,我们将介绍一些创建.gitignore文件的最佳实践,并提供一个推荐的.gitignore文件,供您作为起点使用。

    2024年02月05日
    浏览(68)
  • Java程序员必备的面试技巧与高频面试题,内有面经

    作为一名Java程序员,面对职业生涯中不可避免的面试环节时,准备全面且具有针对性的面试技巧是非常关键的。 以下是根据我的面试百场总结的一些建议和技巧,我将从“面试经历”和“面试技巧”两个方面来帮助你更好地准备Java技术面试。 文章目录 Q1 - 能否自我介绍一下

    2024年02月02日
    浏览(67)
  • Visual Studio实用调试技巧---让你成为高端的程序员

    ​ 💓博客主页:江池俊的博客 👉专栏推荐:✅C语言初阶之路 ✅C语言进阶之路 ✅数据结构探索 💻代码仓库:江池俊的代码仓库 ​🎪 社区:GeekHub社区 ​ 🎉欢迎大家点赞👍评论📝收藏⭐ 🍁 如果觉得博主的文章还不错的话,请点赞👍收藏🌟 三连支持一下博主💞 在计

    2024年02月14日
    浏览(53)
  • Visual Studio 2022 程序员必须知道高效调试手段与技巧(上)

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,前面给大家介绍了Visual Studio 2022 下载与安装今天我们就来介绍一下 VS2022 最强大的功能调试?    ⛳️ 调试可以说是一个

    2024年02月15日
    浏览(40)
  • Visual Studio 2022 程序员必须知道高效调试手段与技巧(中)

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,上一章给大家介绍了 Visual Studio 2022 快捷键和 版本介绍,今天就来给大家来点干货    ⛳️ 今天来正式来调试环节,带大

    2024年02月15日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包