当前位置:网站首页>关于c语言的调试技巧
关于c语言的调试技巧
2022-08-02 14:09:00 【为java献身】
关于vs中该代码出现死循环的分析
主要是看了鹏哥的视频 来进行总结加深印象
要先知道两个知识点;
1:
栈区的默认使用:
先使用高地址处的空间
再使用低地址处的空间
2:
数组随着下标的增长
地址是由低到高变化的
具体分析:
因为在main中创建了两个局部变量,根据栈区的存放规则,我们知道变量i存放的地址会在数组arr上面,当将数组里面的内容全部改成0之后,循环并未停止,出现越界访问现象,,在越界访问的时候可能可能遇到i,则出现改变i的值出现死循环的情况
情况分析:
在vc6.0的情况下 小于等于10的情况下就出现了死循环
在gcc编译器下 小于等于11的情况下就死循环
在vs的情况下 小于等于12的情况下出现死循环
还未执行时vs就会出现提示 但是很不明显 手动移上去时候出现
注意点:在debug版本和relese版本下 ,出现不同情况,在relese版本下,代码正常运行,也说明了relese也对内存布局进行了优化
最后总结:如何写出易调试的代码
优秀的代码:
1.代码运行正常
2.bug很少
3.效率高
4.可读性好
5.可维护性高
6.注释清晰
7.文档齐全
常见的coding技巧:
1.尽量使用assret
2.尽量使用const
3.养成良好的编码风格
4.添加必要的注释
5.避免编码的陷阱
边栏推荐
猜你喜欢
随机推荐
LLVM系列第二十章:写一个简单的Function Pass
Impressions of Embrace Jetpack
ECP2459耐压60V降压BUCK电路用于WIFI模块供电方案原理图
机器学习和深度学习中的梯度下降及其类型
可以拖拽的ViewGroup,仿微信拖拽缩放关闭
PyTorch③---torchvision中数据集的使用
kotlin Android序列化
win10 system update error code 0x80244022 how to do
Win10上帝模式干嘛的?Win10怎么开启上帝模式?
系统线性、时不变、因果判断
Win10 can't start WampServer icon is orange solution
最小树高度
Actual combat Meituan Nuxt +Vue family bucket, server-side rendering, mailbox verification, passport authentication service, map API reference, mongodb, redis and other technical points
Win11怎么在右键菜单添加一键关机选项
LORA芯片ASR6601支持M4内核的远距离传输芯片
DP1332E刷卡芯片支持NFC内置mcu智能楼宇/终端poss机/智能门锁
设备驱动框架简介
使用npx -p @storybook/cli sb init安装失败,手把手搭建专属的storybook
Win11没有本地用户和组怎么解决
Detailed explanation of RecyclerView series article directory









