当前位置:网站首页>关于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⑦---卷积神经网络_非线性激活
基于51单片机和物联网的智能家居系统(ESP8266物联网模块)
FP7195转模拟调光技术解决智能家居调光频闪和电感噪音的原理
[论文阅读] ACT: An Attentive Convolutional Transformer for Efficient Text Classification
循环神经网络RNN 之 LSTM
用U盘怎么重装Win7系统?如何使用u盘重装系统win7?
win10无法直接用照片查看器打开图片怎么办
【目标检测】YOLO v5 安全帽检测识别项目模型
PyTorch④---DataLoader的使用
win10系统更新错误代码0x80244022怎么办
随机推荐
小T成长记-网络篇-1-什么是网络?
单端K总线收发器DP9637兼容L9637
LLVM系列第二十七章:理解IRBuilder
Win10电脑需要安装杀毒软件吗?
FP6296锂电池升压 5V9V12V内置 MOS 大功率方案原理图
最小树高度
vscode镜像
机器学习---监督学习、无监督学习
LeetCode2 电话号码的字母组合
CS4398音频解码替代芯片DP4398完全兼容DAC解码
LORA芯片ASR6601支持M4内核的远距离传输芯片
【我的电赛日记(一)】HMI USART串口屏
DP4056电源保护芯片锂电池pin对pinTP4056
Binder ServiceManager解析
没学好统计学的下场
【目标检测】YOLO v5 安全帽检测识别项目模型
什么是外生变量和内生变量
PyTorch③---torchvision中数据集的使用
FP7126降压恒流65536级高辉无频闪调光共阳极舞台灯RGB驱动方案
LLVM系列第二十一章:写一个简单的Loop Pass