实用调试技巧
调试:除错
Debug和Release的区别
Debug通常称为调试版本,包含调试信息,不做任何优化,便于调试程序
Release称为发布版本,进行了各种优化,使得程序大小和运行速度上都是最优的,以便用户使用
快捷键
F5 开始调试
ctrl + F5 开始执行(不调试)
F9 设置断点、取消断点
F10 逐过程 -- 遇到函数不进去
F11 逐语句 -- 遇到函数进去
F5和F9配合使用
越界访问有风险
结果:死循环
栈区空间使用顺序是由高向低
coding小技巧
- 使用assert
- 尽量使用const
- 养成良好的编码风格
- 添加必要的注释
- 避免编码的陷阱
模拟实现Strcpy
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* dest, char* src)
{
char* s=dest;
assert(dest && src);
while (*src != '\0')
{
*dest++ = *src++;
}
return s;
}
int main()
{
char arr[] = "hello world";
char s[20] = { 0 };
my_strcpy(s, arr);
printf("%s\n", s);
return 0;
}
const修饰指针
const int* p;
int* const p;
const放在*左边限制*p;放在*右边限制p