前言:
现在同学们对“c语言内存溢出会怎么样”可能比较注意,同学们都想要了解一些“c语言内存溢出会怎么样”的相关文章。那么小编在网摘上搜集了一些对于“c语言内存溢出会怎么样””的相关资讯,希望朋友们能喜欢,各位老铁们一起来了解一下吧!C语言有无符号和有符合的类型。一个有符合型的变量,char类型范围在[-128, 127]。假如赋值超出该范围,会出现什么情况?
编译测试运行,会发现一直在死循环。
当数据溢出的时候,如果是有符合类型,如insgined char表示范围[0,255],当最大值255递增加1,就会变成0,重新开始。如果是有符合数,当发生溢出时,C语言的语法比较宽泛,不会对数据类型做安全性检测,因此也不会触发异常(当结果不确定时,就取决于不同的编译器、编译环境,结果都有可能不一样)。
大部分的编译器,运行结果返回是-128,默认采用与无符号数一样的轮回出来。但有些编译器处理结果运行是0,也是一种正常情况。
数据溢出,在嵌入式编程中,往往比较难发现,尤其是代码工程量大的时候,出现BUG需要花费点时间排查。如何快速解决呢?
参考如下:
如果是两个无符号数相加,相加的和,小于其中任何一个加数,那么肯定是溢出了。
如果是两个有符号数相加,两个整数相加的和小于0,则溢出。如果两个附属相加的和大于0,则也发生了溢出。
通过本文简单介绍,在C编程中,需要留意数据溢出的情况。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #c语言内存溢出会怎么样 #c语言数据溢出解决