WINDOWS 32位与64位系统的编程差异

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                win32,win64编程永恒;语言编程需要注意的64位和32机器的区别
一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:
16位平台
char      1个字节8位
short        2个字节16位
int         2个字节16位
long      4个字节32位
指针      2个字节
32位平台
char      1个字节8位
short        2个字节16位
int         4个字节32位
long      4个字节
long long 8个字节
指针      4个字节
64位平台
char      1个字节
short        2个字节
int         4个字节
long      8个字节(区别)
long long 8个字节
指针        8个字节(区别)
二、编程注意事项
为了保证平台的通用性,程序中尽量不要使用long数据库型。可以使用固定大小的数据类型宏定义:
typedef signed char       int8_t
typedef short int          int16_t;
typedef int                int32_t;
# if __WORDSIZE == 64typedef long int           int64_t;# else__extension__typedef long long int      int64_t;
#endif
三、使用int时也可以使用intptr_t来保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台长度,比如64位机器它的长度就是8字节,32位机器它的长度是4字节,定义如下:
#if __WORDSIZE == 64typedef long int             intptr_t;#elsetypedef int                  intptr_t;#endif编程中要尽量使用sizeof来计算数据类型的大小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值