你是真的“C”——Visual Studio 2022(VS2022)编译器 -—实用调试技巧(下)

简介: 4.多多动手,尝试调试,才能有进步。🙌5. 一道经典面试题目,这里用调试进行演示分析:🙌6. 如何写出好(易于调试)的代码。🙌6.1 优秀的代码:6.2 典型栗子示范:6.3 const的作用7. 编程常见的错误🙌7.1 编译型错误7.2 链接型错误7.3 运行时错误总结撒花💞

4.多多动手,尝试调试,才能有进步。🙌


一定要熟练掌握调试技巧。

初学者可能80%的时间在写代码,20%的时间在调试。但是一个程序员可能20%的时间在写

程序,但是80%的时间在调试。

这里所讲的都是一些简单的调试。

以后可能会出现很复杂调试场景:多线程程序的调试等。多多使用快捷键,提升效率。


5. 一道经典面试题目,这里用调试进行演示分析:🙌


#include <stdio.h>
int main()
{
  int i = 0;
  int arr[10] = { 0 };
  for (i = 0; i <= 12; i++)
  {
    arr[i] = 0;
    printf("hehe\n");
  }
  return 0;
}


调试后分析出这段代码的问题和原因:

微信图片_20230427163603.png


6. 如何写出好(易于调试)的代码。🙌


6.1 优秀的代码:


1.代码运行正常

2.bug很少

3.效率高

4.可读性高

5.可维护性高

6.注释清晰

7.文档齐全


常见的coding技巧:

8. 使用assert

9. 尽量使用const

10. 养成良好的编码风格

11. 添加必要的注释

12. 避免编码的陷阱。


6.2 典型栗子示范:


模拟实现库函数:strcpy

#include<assert.h>
char * my_strcpy(char *arr1,const char *arr2)
{
    assert(arr1 && arr2);
    char* str1 = arr1;
    while (*str1++ = *arr2++)
    {
        ;
    }
    return arr1;
}
int main()
{
    char arr1[20] = { 0 };
    char arr2[] = "Hello bit!";
    printf("%s", my_strcpy(arr1, arr2));
    return 0;
}


注意:


1.分析参数的设计(命名,类型),返回值类型的设计

2.这里讲解野指针,空指针的危害。

3.assert的使用,这里介绍assert的作用

4.参数部分 const 的使用,这里讲解const修饰指针的作用

5.注释的添加


6.3 const的作用


const修饰指针变量的时候:


1.const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。但是指针变量本身的内容可变。

2.const如果放在*的右边,修饰的是指针变量本身,保证了指针变量的内容不能修改,但是指针指向的内容,可以通过指针改变。

这里举个栗子辅助大家理解: 模拟实现库函数:strlen

#include<stdio.h>
#include<assert.h>
int my_strlen(const char* p)
{
    assert(p);
    char* str = p;
    while (*p != '\0')
    {
        p++;
    }
    return p - str;
}
int main()
{
    char arr[] = "Hello bit!";
    printf("%d", my_strlen(arr));
    return 0;
}


7. 编程常见的错误🙌


7.1 编译型错误


译型错误其实就是语法错误,这种错误比较好发现。直接看错误提示信息(双击)就可以跳到错误位置,解决问题。或者凭借经验就可以搞定。相对来说简单。


7.2 链接型错误


看错误提示信息,主要在代码中找到错误信息中的标识符,然后定位问题所在。一般是标识符名不存在或者拼写错误。一般链接型错误发生后,直接看错误提示信息(双击)是不可以跳到错误位置。


一般链接型错误信息提示如下图所示:

微信图片_20230427164100.png


7.3 运行时错误


这种错误是最难搞的,也是我们主要借助调试来解决的错误,逐步定位问题。最难搞。


温馨提示:调试这种技能,只能不断积累排错经验,才能牢牢掌握的,必须实践。


总结撒花💞


  本篇文章旨在分享C语言详解Visual Studio 2022(VS2022)编译器 -—实用调试技巧的相关知识点。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘




相关文章
|
算法 安全 程序员
Visual Studio实用调试技巧---让你成为高端的程序员
Visual Studio实用调试技巧---让你成为高端的程序员
244 0
Visual Studio实用调试技巧---让你成为高端的程序员
|
存储 安全 NoSQL
Visual Studio 2022 你必须知道的实用调试技巧
大家好,前面我们讲了Visual Studio 2022的安装和使用以及scanf报错的解决方法 今天分享一些实用的 VS 技巧,而这些技巧很多人都不知道。当你以后在工作中遇到:我在同事电脑上解决问题,或在会议上演示代码示例时,使用了一些 VS “骚”操作,他们会好奇地问:你是怎么做到的?有时候你知道一些别人不知道的小技巧便可以让你显得更专业。 PS:本文所有示例演示均基于 Visual Studio 2022 版本。
279 0
|
NoSQL 编译器 程序员
Visual Studio2022编译器实用调试技巧
Visual Studio2022编译器实用调试技巧
|
安全 程序员 编译器
visual studio 2022调试技巧介绍(2)
1.什么是bug? bug是计算机领域专业术语,bug原意是“臭虫”,现在用来指代计算机上存在的漏洞,原因是系统安全策略上存在的缺陷,有攻击者能够在未授权的情况下访问的危害。 漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。 2.调试是什么,如何调试? 2.1 调试的概念 调试简单来说就是调试是保证所提供的设备能够正常运行的必须程序。 通过一些工具对代码进行检测,修复bug。
144 0
visual studio 2022调试技巧介绍(2)
|
C语言 C++
【五一创作】Visual Studio常用调试技巧的温习
【五一创作】Visual Studio常用调试技巧的温习
98 0
|
安全 程序员 编译器
visual studio 2022调试技巧介绍(1)
1.什么是bug? bug是计算机领域专业术语,bug原意是“臭虫”,现在用来指代计算机上存在的漏洞,原因是系统安全策略上存在的缺陷,有攻击者能够在未授权的情况下访问的危害。 漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。 2.调试是什么,如何调试? 2.1 调试的概念 调试简单来说就是调试是保证所提供的设备能够正常运行的必须程序。 通过一些工具对代码进行检测,修复bug。
350 0
|
6月前
Visual Studio 2022 中VLD库如何安装
Visual Studio 2022 中VLD库如何安装
732 1
|
6月前
Visual Studio 2022 中VLD库如何安装
Visual Studio 2022 中VLD库如何安装
704 0
|
5月前
|
IDE 开发工具 C语言
Visual Studio 2017 安装及使用(新手)
Visual Studio 2017 安装及使用(新手)
1198 0
|
4月前
|
弹性计算 自然语言处理 Windows
通义灵码 Visual Studio 下载安装指南(附安装包)
本安装步骤适用于 Windows 10 及以上操作系统中安装和使用通义灵码。
131643 20