字节问题

一、关于int 与long

16位系统:long是4字节,int是2字节
32位系统:long是4字节,int是4字节  (  long long 是8字节(64位,取值范围 -2^63 ~ 2^63-1) )

64位系统:long是8字节,int是4字节

(呵,一直都还以为 32位操作系统上long范围大于int 范围)

C语言规定,无论什么平台,都要保证long型占用的字节数不小于int型;

标准规定long是不会小于Int类型的,意味着long的表示范围肯定要大于等于int类型的表示范围。具体可以由实现决定


·以为指针与int大小一样。在64位系统中,sizeof(void *) == 8,而sizeof(int) == 4。如果忘记了这个,将导致不正确的赋值以致程序崩溃。


 图1表示了32位系统的典型操作,CPU一次只都处理4字节内存中的数据。图2显示了有着更宽寄存器的64位系统,一次能处理8字节。


图1


图2


二、在64操作系统上,VS默认安装编译的是32位程序

 1、安装VS2008时复选64位编译器选项;

2、开始菜单|所有程序|Microsoft Visual Studio 2008|Visual Studio Tools|Visual Studio 2008 x64 Win64 Command Prompt,开启64位编译环境;

3、命令行: devenv /useenv,启动Visual Studio 2008并进入64位编译环境;

4、开启项目或新建项目一个已存在的32位工程(例如, MyApplication);

5、在”Build”菜单上, 点击”Configuration Manager”;

6、在”Active Solution Configurations”列表中, 点击”New”;

7、在”New Solution Configurations”对话框中, 在”Solution Configuration Name”下面选择”Debug64”(不包含引号), 并且在”Copy Settings From”下面选择”Debug”;

8、点击”OK”;

9、在”Configuration Manager”对话框中, 在”Active Solution Configuration”列表中, 点击选择”Debug64”, 然后点击”OK”;

10、在”Solution”(中文:解决方案)浏览窗口中, 右键”Project”, 然后, 点击”Properties”;





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值