英文公司网站设计,做网站还有流量么,网站能给企业带来什么,股权分配方案创业初期一名优秀的程序员也是一名出色的侦探#xff0c;每一次调试都是尝试破案的过程 目录 前言 一、什么是调试#xff1f; 二、调试 1.调试是什么 2.基本步骤 三、调试注意事项 1.怎么写出易于调试的代码 assert(断言) const 2.常见错误 总结 前言
主要是怎么调试#xff0c;调… 一名优秀的程序员也是一名出色的侦探每一次调试都是尝试破案的过程 目录 前言 一、什么是调试 二、调试 1.调试是什么 2.基本步骤 三、调试注意事项 1.怎么写出易于调试的代码 assert(断言) const 2.常见错误 总结 前言
主要是怎么调试调试的注意事项调试中常见的错误和遇到的问题 一、什么是调试
第一次发现导致计算机错误的飞鹅bug 英语单词“昆虫”的意思
二、调试
1.调试是什么 找代码里面问题的过程 一切发生的事都有迹可循 迹象越多越容易顺滕而上 (推理) 调试就是发现并减少计算机程序中的错误 2.基本步骤 发现程序错误的存在 以隔离,消除等方法对错误进行定位 确定错误产生原因 提出纠正错误的解决办法 对程序错误改正重新测试 基本选项了解
debug调试
release发布版本(编译器自动优化)
IDE--集成开发环境
F5启动调试
F11逐语句(可以进入函数内部 细节)
F10逐过程
F9创建短点和取消断点(在多行程序或多文件适用)可以在程序任意位置设置断点
controlf5开始执行不调试 三、调试注意事项
调试的时候查看程序信息
一定要先开始调试才能看到监视窗口! 观察内存:调试窗口内存 指针变量的内容和地址是不一样的指针指向一个常量或变量指针自己也占一个空间有自己的地址空间里的内容是所指常量或变量的地址
如下例 是随机值 反汇编能看到程序翻译成的汇编代码 查看临时变量调试时会自动更新变量的值使用起来不是很友好
查看调用堆栈
补充知识点
数据结构中:
队:排队后进前出
栈:栈帧一堆上进上出汉诺塔 栈区局部变量
堆区
静态区
栈区的使用习惯是先使用高地址处空间 1.怎么写出易于调试的代码 代码运行正常 bug少 效率高 可读性高 可维护性高 注释清晰 文档齐全 常见的coding技巧 使用assert(断言)assert.h 尽量使用const 养成良好的代码风格 添加必要注释 避免编码陷阱 assert(断言)
assert中可以放一个表达式表达式的结果为假就报错反之则不发生状况。可以利用assert来检测程序中的bug如检测指针p的值是不是为null但只能在debug环境下使用在release中assert的报错会被自动优化。
const
const修饰一个变量时变量被保护不能再修改变量的值
const修饰指针时
放在*的左边修饰指针变量指向的内容表示指向指针的内容不能通过指针来改变了但指针变量本身可以修改 const int *pnum; *p10;//err pn;//ok 放在*右边修饰指针变量本身表示指针变量本身不能被修改但是指针指向的内容可以通过指针来改变 int * const pnum; *p10;/ok pn;//err 2.常见错误
编译错误:直接有错误提示信息
链接错误:无法解析的外部符号
运行错误:能够调试的都是运行错误
总结
(未完待续....