聊聊C语⾔之int类型到底占⽤⼏个字节在⽹络上常常看到有朋友问“int占⼏个字节呀?”,其实这个问题就好⽐在问“车有⼏个轮⼦呀?”,如果提问的⼈不说明车⼦的类型那么这
个问题就没有标准答案了,因为车有可能是⾃⾏车、汽车,还有可能是⽕车。对于int来说也是⼀个道理,要想知道int占⽤⼏个字节最简单的办法就是实际测试⼀下.
将同⼀段测试代码分别使⽤Turbo C(⼀下简称TC)、VC6.0和GCC对这段代码进⾏编译执⾏,我们会发现TC告诉我们int占⽤2个字节,⽽VC和GCC告诉我们int占⽤4个字节。我们在同⼀台机器上编译同⼀段代码,⽽不同的编译器输出了不同的执⾏结果,那么它们仨⼈到底谁说的是真话呢?
我猜它们说的都是真话,因为从来没⼈规定int应该占⽤⼏个字节,那么编译器只好⾃⼰说了算。TC说:只要在我这编译那么int就占2个字节。VC和GCC说:只要在我这编译那么int就占4个字节。TC⼜说了:如果在我这使⽤int类型变量,那么它能表达的范围是[-(2^15-1),
2^15],出了这个范围就要当⼼了。VC和GCC对着TC不屑的说:int在我们这能表⽰的范围可不⽌这么⼩,我们的表达范围是[-(2^31-1),
2^31],怎么样够厉害的吧。
所以我们在使⽤不同编译器时候需要注意他们的数据类型差异,int如此其他数据类型也应当注意,因为
并没⽤⼈规定某种数据类型应该占据多少字节,以及他所表⽰的数据是有符号还是⽆符号,即便有⼈规定这些内容那么编译器是否愿意按规定来实现谁也说不准。以后我们还会介绍⼀些由于数据类型差异引发的程序异常。
c语言编译器怎么用?好了先总结⼀下这次我们所掌握的信息:
1. C语⾔具有较好的移植性,同⼀份代码可以在不同的编译器上进⾏编译;
2.编译没有出错的程序不表⽰执⾏也正确;
3. int到底占⽤⼏个字节谁也说不准,就像车应该有⼏个轮⼦⼀个道理,需要根据实际情况⽽定,对int来说主要还是看编译器本⾝怎么定义;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论