当前位置:网站首页>关于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.避免编码的陷阱
边栏推荐
猜你喜欢
随机推荐
PyTorch⑥---卷积神经网络_池化层
流,向量场,和微分方程
蓝牙温度检测系统(基于BT08-B蓝牙模块)
Win7遇到错误无法正常开机进桌面怎么解决?
Please make sure you have the correct access rights and the repository exists.问题解决
PyTorch⑩---卷积神经网络_一个小的神经网络搭建
13.56MHZ刷卡芯片CI521兼容cv520/ci520支持A卡B卡MIFARE协议
LLVM系列第二十一章:写一个简单的Loop Pass
记录Yolo-tiny-v4的权重提取和中间层结果提取
win10 system update error code 0x80244022 how to do
CS4398音频解码替代芯片DP4398完全兼容DAC解码
基于51单片机和物联网的智能家居系统(ESP8266物联网模块)
FP7128内置MOS降压恒流调光深度0.01%高辉共阳调光方案
win10无法直接用照片查看器打开图片怎么办
使用预训练语言模型进行文本生成的常用微调策略
PyTorch②---transforms结构及用法
“自主可控”的正确姿势
Mysql连接错误解决
LLVM系列第二十八章:写一个JIT Hello World
NER(命名体识别)之 FLAT模型









