1.调试是什么?
调试(英语:Debugging / Debug),又称除错,是发现和减少计算机程序或电子仪器设备中程序
错误的一个过程
2.Debug和Release的介绍。
Debug
通常称为调试版本,它包含调试信息,并且
不作任何优化,便于程序员调试程序。
Release
称为发布版本,
它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优
的,以便用户很好地使用。
3.快捷键使用
最常使用的几个快捷键:
F5
启动调试,经常用来直接跳到下一个断点处。
F9
创建断点和取消断点
断点的重要作用,可以在程序的任意位置设置断点。
这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。
F10
逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。
F11
逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑
进入函数内部(这是最
长用的)。
CTRL + F5
开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。
4.调试的时候查看程序当前信息
4.1查看临时变量的值
在调试开始之后,用于观察变量的值。
点击监视,输入你想要监视的变量,你可以观察变量值的时刻变化。
4.2
查看内存信息
在调试开始之后,用于观察内存信息。
查看你想要观察变量的地址,是否有越界什么的。
4.3查看汇编信息
调试后右键或者窗口
可以通过汇编语言(写得越多,效率相对说低),对我们的程序进行优化
5如何写出好(易于调试)的代码。
5.1
优秀的代码:
1. 代码运行正常
2. bug很少
3. 效率高
4. 可读性高
5. 可维护性高
6. 注释清晰
7. 文档齐全
常见的
coding
技巧:
1. 使用assert
2. 尽量使用const
3. 养成良好的编码风格
4. 添加必要的注释
5. 避免编码的陷阱。
assert()介绍。assert用法是断言。
需要头文件如图。
如果条件为真,什么都不会发生。如果条件为假,则会中断程序,提醒你。
因为在有些情况下有些异常我们无法通过代码表示清楚,而断言则会提醒我们
这个地方应该会出现哪些问题。
#include<stdio.h>
#include<assert.h>
void main()
{
int a,b;
int max;
scanf("%d%d",&a,&b);
assert((a>0)||(b>0));
if (a > b)
{
max = a;
}
else
{
max = b;
}
printf("%d",max);
}
实现strlen函数。
int my_strlen(const char *str)
{
int count = 0;
assert(str != NULL);
while(*str)//判断字符串是否结束
{
count++;
str++;
}
return count;
}
形参我们选择传指针,为的是避免造成空间浪费(传一个数组例如100个空间大小,那么又会产生100个空间大小)。并且我们期望数组不为空,断言会更好提醒出问题。而不是什么也不显示就过去了。
char * strcpy(char * dst, const char * src)
{
char * cp = dst;
assert(dst && src);
while( *cp++ = *src++ )
; /* Copy src over dst */
return( dst );
}
strcpy()两个参数,前面是目的,后面是源地址,将源参里的内容付给目的参数。