C的整形变量在Turbo C、VC++、Linux下的大小

C语言整形变量内存分配
本文探讨了C语言中整形变量(short、int、long)在不同编译环境(TurboC2.0、VC++6.0、Linux)下的内存分配情况,并提供了使用sizeof函数测量变量大小的方法。

C语言中,整形变量在不同的编译环境下,其内存分配的大小是不相同的。ANSI C的标准没有规定标识符的长度,但各个C编译系统都有自己的规定。

在C里的整形变量:short、int、long,要求short型不长于int型,long型不短于int型。在TC环境下,short和int型被分配2字节(word),即16位(bit),long型是4字节,即32位。而在其它编译环境下int可能会被分配4字节,与long型相同。

如下是各个编译环境下为三种整形变量所分配的内存空间:

在Turbo C2.0:int 16、short 16、long 32;

在VC++ 6.0: int 32、short 16、long 32;

在Linux下: int 32、short 16、long 32;

为了验证自己所用的编译器为三种整形分配多大的内存空间,可以在当前编译环境下,写一段测试程序来测量它们的实际大小。

/*

查看C中的变量类型(int、short、long等)在Turbo C 里的大小。(方法一)

*/

由此可见,在不同编译环境下,为三种整形变量分配的字节数量不同,了解这些可以防止数据意外溢出,而导致错误,但这种错误通常编译器是不会报错的,这就形成透明错误,看不到但确实存在。

测试数据类型大小的方法很多,也可以用下面的方法:

/*

查看C中的变量类型(int、short、long等)在Turbo C 里的大小。(方法二)

*/

这种方法比较简便,利用sizeof函数来帮你查出整形变量的大小,但需要注意sizeof函数返回的是字节数,需要乘以8来修正(一个字节占8位)。

转载于:https://www.cnblogs.com/me115/archive/2010/09/27/1836648.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值