从代码角度,带你手把手调试(下)

简介: 从代码角度,带你手把手调试(下)

关于调试,真的太重要了!!!真的太重要了!!!真的太重要了!!

各位大佬,以及初学者一定要多加练习!!多去调试

调试的重要性:(摘自百度)


调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件!



8.常见的错误


编译错误-语法错误

image.png


链接错误

1.函数未定义

image.png

2.符号名写错了(未定义标识符)

image.png


编译,链接,运行

image.png


9.常见的代码技巧

1.使用assert进行断言->防止空指针 引用头文件#include<assert.h>
2.尽量使用const修饰 -如某些字符串不需要做更改的就用const修饰
3.养成良好的编码风格
4.添加必要的注释
5.避免编码的陷阱
复制代码

10.NULL null Null的区别

读文档时:
NULL : 空指针
Null - \0
null - \0
复制代码

15.关于函数返回

//err

int* test()
{
    int a = 10;
    return &a;
}
int main()
{
    int *ret = test();
    *ret = 0;
    return 0;
}
复制代码


原因:a为局部变量,在栈区开辟.当函数返回时,a空间销毁,即a空间的地址已经还给操作系统了,但是ret接收了这个局部变量的地址,造成非法访问


相关文章
|
4月前
|
缓存 前端开发 JavaScript
【第22期】 一文读懂前端调试利器whistle
【第22期】 一文读懂前端调试利器whistle
36 0
|
7月前
|
程序员 编译器 Linux
程序员进阶之路:程序环境和预处理(二)
程序员进阶之路:程序环境和预处理(二)
15 0
|
2月前
|
程序员 编译器 C语言
编程最重要的技术之一 — 调试(以C语言代码为例)
编程最重要的技术之一 — 调试(以C语言代码为例)
42 0
|
9月前
|
程序员
编程终极技能-调试(下)
编程终极技能-调试
|
7月前
|
存储 自然语言处理 程序员
程序员进阶之路:程序环境和预处理(一)
程序员进阶之路:程序环境和预处理(一)
36 0
|
9月前
|
程序员 编译器
编程终极技能-调试(上)
编程终极技能-调试
|
10月前
|
设计模式 算法 搜索推荐
软件设计师总结-含括学习方法和学习过程,可参考(下)
软件设计师总结-含括学习方法和学习过程,可参考(下)
|
10月前
|
设计模式 算法 开发工具
软件设计师总结-含括学习方法和学习过程,可参考(上)
软件设计师总结-含括学习方法和学习过程,可参考(上)
|
12月前
|
IDE NoSQL 程序员
必备技能:程序的调试
本节内容相对来说比较笼统一些,但是也是非常非常非常重要的一节内容,毕竟一个程序猿不能只会写bug,你写一堆bug谁来修呢?所以通过调试去排查错误的能力是一个优秀的程序猿必须要掌握的技能,而且不能仅仅是掌握,更要精通,本节内容总体来说只有两大部分,一是学习调试的方法,会有举例实际去感受一下,二是在写代码就要考虑的一些问题,养成良好的写代码习惯,防患于未然。
必备技能:程序的调试
|
12月前
|
XML 前端开发 JavaScript
没有一个顺手的流程绘制工具?好吧,自己动手,丰衣足食
没有一个顺手的流程绘制工具?好吧,自己动手,丰衣足食