看的哔站上鹏哥C语言,优秀!!
基本步骤:
1、发现错误(程序员、测试人员、用户)
2.隔离消除等方式对错误进行定位
3、确定错误产生的原因
4、提出纠正错误的方法
5、对程序错误予以改正,重新测试
什么是Debug Release
点了release之后记得运行一下然后再找文件夹。
Debug是调试版本(.exe占内存大)
Release是发布版本(.exe占内存小很多)
VS2022调试常用的快捷键:
F5:
运行,反正就是走就行了
F9:
创建断点和取消断点
F10:
逐个过程
F11:
普通的时候和F10没啥区别,但是,当遇到函数的时候,F11可以进到函数里边去。
ctrl+F5:
开始执行不调试。
(有时候需要同时按住Fn才能使用,好像)
ctrl+F:
搜索
注意:打开监视分析
设置调试断点的条件:右击断点点条件
调试的时候查看程序相关信息
调试--窗口
调试开时候后,窗口中才能看到:
自动窗口
局部变量
监视【用的最多】:当a是首地址(数组首元素),但是我们还想看所有的元素或者前几个元素,可以输入:【a,5】,这样可以看到数组a中的前五个元素。
调试--查看内存信息
内存:列,表示一行显示几列。一列表示一个字节
调试--调用堆栈
数据结构中的栈
#include<stdio.h>
void test1() {
printf("结束了");
}
void test2() {
test1();
}
void test() {
test2();
}
int main() {
test();
return 0;
}
调试--寄存器信息查看
例一例二
例二导致死循环的底层原因:
主要就是,不要越界的问题。
如何写出易于调试的程序
运行正常,bug少,效率高,可读性高,可维护性高,注释清晰,文档齐全
常见的编码技巧:
1、使用assert;
#include<assert.h>
断言:
assert(a!=NULL) ;
拓展解释:
在C语言中,assert
宏用于调试和测试,它检查一个条件是否成立。如果条件为假(即表达式的值为0),assert
会输出一条错误消息,并调用abort
函数来终止程序。这有助于开发者快速发现程序中的逻辑错误。
使用assert
时,需要包含<assert.h>
头文件。
#include <assert.h>
int main() {
int x = 10;
assert(x > 0); // 如果x不大于0,程序会终止并显示错误信息
// 继续执行其他代码
return 0;
}
如果x
的值不大于0,程序会打印一条错误消息,比如:Assertion failed: x > 0, file test.c, line 4
2、尽量使用const;
const修饰指针变量:
(1)const放在*左边:const int*p=&num; p指向的的对象不能通过p来改变了,但是p变量本身的值是可以改变的。
(2)const放在*右边:int*const p=&num;p指向的对象可以通过p来改变,但是不能修改p
本身的值。
(3)const int*const p=&m;两个都改不了一点。
3、添加必要的注释
4、避免编码陷阱
优化后的
返回char*,实现链式访问
B编程常见错误:
1、编译型错误(语法错误),在编译的过程中就会报错。
2、链接型错误(在链接的过程中)---1、找不到符号 2、写错了
3、运行错误(最难,调试来解决运行时错误)
维护gitee,!!!学会使用
维护Gitee主要包括以下几个步骤: