当前位置:网站首页>关于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.避免编码的陷阱
边栏推荐
猜你喜欢

【我的电赛日记(一)】HMI USART串口屏

FP7126降压恒流65536级高辉无频闪调光共阳极舞台灯RGB驱动方案

Impressions of Embrace Jetpack

Win11电脑一段时间不操作就断网怎么解决

深度学习之 卷积网络(textCNN)

PyTorch③---torchvision中数据集的使用

Binder机制(中篇)

Mysql connection error solution
![[论文阅读] ACT: An Attentive Convolutional Transformer for Efficient Text Classification](/img/59/88db682b6ff82d3612fd582cd499b2.png)
[论文阅读] ACT: An Attentive Convolutional Transformer for Efficient Text Classification

内存申请(malloc)和释放(free)之下篇
随机推荐
神经网络的设计过程
2022TI杯D题混沌信号产生实验装置
针对多轮推理分类问题的软标签构造方法
tensorflow实战之手写体识别
LLVM系列第二十七章:理解IRBuilder
基于无监督医学图像配准论文(1)
kotlin Android序列化
Actual combat Meituan Nuxt +Vue family bucket, server-side rendering, mailbox verification, passport authentication service, map API reference, mongodb, redis and other technical points
深度学习之 卷积网络(textCNN)
PHY6222蓝牙5.2支持MESH组网M0内核超低功耗
PyTorch⑦---卷积神经网络_非线性激活
PyTorch⑨---卷积神经网络_线性层
PyTorch⑩---卷积神经网络_一个小的神经网络搭建
Impressions of Embrace Jetpack
PyTorch⑥---卷积神经网络_池化层
ECP2459耐压60V降压BUCK电路用于WIFI模块供电方案原理图
2020-02-06-快速搭建个人博客
2.4G无线小模块CI24R1超低成本
arm push/pop/b/bl汇编指令
LLVM系列第二十章:写一个简单的Function Pass