当前位置:网站首页 > R语言数据分析 > 正文

lvcreate命令i I(lvcreate命令全部参数)



VS2019实用调试技巧

  • 1.debug和release的区别
  • 2.调试
  • (1)调试最常使用的几个快捷键
  • (2)用监视窗口查看临时变量的值
  • (3)查看内存信息
  • (4)查看调用堆栈
  • (5)查看汇编信息
  • (6)查看寄存器信息
  • 3.如何写出易于调试/好的代码
  • 4.编程中常见错误

VS集成开发环境上方有一个选项为Debug,表示这是代码的Debug版本,可以将其改为Release,表示这是代码的Release版本,那么Debug版本和Release版本有什么区别吗?

vs_community2019_visual studio

vs_community2019_c语言_02

Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。

Release 称为发布版本,编译器对我们写的代码进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用,Release版本不能调试。

例:请看下面代码:

Debug版本下运行,该程序会出现死循环,即无限输出hehe,这是为什么呢?

vs_community2019_visual studio_03

在vs2019环境下,变量i和arr相差两个整型,不同环境可能不一样,现在知道了局部变量i和arr的内存分配情况,我们先回归到代码。

由代码可知,从arr[10]开始越界访问,虽然对于程序而言arr[10]不存在,属于越界访问,但是对于实际内存而言,arr[10]就是arr[9]后面的一个位置,是真实存在的,因此可以将arr[10]赋值为0,同时也可以将arr[11]赋值为0,但是当访问到arr[12]的时候,由上面的内存分配图我们可以知道arr[12]实际上就是i,将arr[12]赋值为0,实际上就是将i赋值为0,因此i满足for循环条件,又会进入到下一轮循环,当i==12,再次访问到arr[12],将arr[12]赋值为0时,实际上又是将i赋值为0,又会进入下一轮的循环,因此这样下去就是无限死循环输出hehe。

那么在Release版本下,代码是怎么运行的呢?

vs_community2019_开发语言_04

vs_community2019_c语言_05

vs_community2019_c++_06

由此可见Release版本的确会对代码进行优化,不过这种优化是底层的优化,比如这里对内存空间的开辟顺序进行了优化,而且这种优化并不会改变你的代码。

vs_community2019_开发语言_07

vs_community2019_开发语言_08

vs_community2019_visual studio_09

vs_community2019_c++_10

vs_community2019_vs_community2019_11

vs_community2019_visual studio_12

vs_community2019_c++_13

vs_community2019_c++_14

vs_community2019_c语言_15

vs_community2019_开发语言_16

vs_community2019_开发语言_17

优秀的代码:

  1. 代码运行正常
  2. bug很少
  3. 效率高
  4. 可读性高
  5. 可维护性高
  6. 注释清晰
  7. 文档齐全

常见的coding技巧:

  1. 使用assert
  2. 尽量使用const
  3. 养成良好的编码风格
  4. 添加必要的注释
  5. 避免编码的陷阱。
  • 编译型错误:都是语法错误引起的,直接看错误提示信息(双击),解决问题。或者凭借经验就可以搞定。相对来说简单。
  • 链接型错误:看错误提示信息,主要在代码中找到错误信息中的标识符,然后定位问题所在。一般是标识符名不存在或者拼写错误。
  • 运行时错误:借助调试,逐步定位问题。最难搞。
到此这篇lvcreate命令i I(lvcreate命令全部参数)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 苹果15promax参数(苹果15promax参数对比)2025-10-21 14:45:09
  • uchar code table怎么用(uchar code segcode)2025-10-21 14:45:09
  • tplease怎么读(tpictures怎么读)2025-10-21 14:45:09
  • treesizefree怎么用(treeset.floor)2025-10-21 14:45:09
  • dred怎么读(houdred怎么读)2025-10-21 14:45:09
  • vmwarepro密钥(vmwareworkstationpro15密钥)2025-10-21 14:45:09
  • fairseq教程(fair fairness)2025-10-21 14:45:09
  • ueditor教程(ueditor编辑器)2025-10-21 14:45:09
  • 好玩的代码游戏超级马里奥(超级马里奥rpg作弊代码)2025-10-21 14:45:09
  • springboot aop日志记录(springboot aop记录操作日志)2025-10-21 14:45:09
  • 全屏图片