32位机和64位机编程时应该注意些什么?
2014-08-03 22:58
295 查看
1.数据类型在各种机器中所占的字节数不同
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个字节(区别)
2.为了保证平台的通用性,程序中尽量不要使用long数据库型
3.编程中要尽量使用sizeof来计算数据类型的大小,如:int *p = (int*)malloc(sizeof(int)*100);而不要int *p = (int *)malloc(400);
4.使用int时也可以使用intptr_t来保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台长度,比如64位机器它的长度就是8字节,32位机器它的长度是4字节,定义如下:#if __WORDSIZE == 64
typedef longint intptr_t;
#else
typedefint intptr_t;
#endif
5.ssize_t 和size_t分别是unsigned和signed size of computer wordsize。它们也是表示计算机的字长,在32位机器上是int型,在64位机器上long型,从某种意义上来说它们等同于intptr_t和uintptr_t。它们在stddef.h里面定义。需要注意的是socket的accept函数在有些操作系统上使用size_t是不正确的,因为accept接收的int*类型,而size_t可能是long int 类型。后来BSD使用sock_t来替代它
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个字节(区别)
2.为了保证平台的通用性,程序中尽量不要使用long数据库型
3.编程中要尽量使用sizeof来计算数据类型的大小,如:int *p = (int*)malloc(sizeof(int)*100);而不要int *p = (int *)malloc(400);
4.使用int时也可以使用intptr_t来保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台长度,比如64位机器它的长度就是8字节,32位机器它的长度是4字节,定义如下:#if __WORDSIZE == 64
typedef longint intptr_t;
#else
typedefint intptr_t;
#endif
5.ssize_t 和size_t分别是unsigned和signed size of computer wordsize。它们也是表示计算机的字长,在32位机器上是int型,在64位机器上long型,从某种意义上来说它们等同于intptr_t和uintptr_t。它们在stddef.h里面定义。需要注意的是socket的accept函数在有些操作系统上使用size_t是不正确的,因为accept接收的int*类型,而size_t可能是long int 类型。后来BSD使用sock_t来替代它
相关文章推荐
- 32位机和64位机编程时应该注意些什么
- 32位机和64位机编程时应该注意些什么
- 32位机和64位机编程时应该注意些什么
- 32位机和64位机编程时应该注意些什么
- 32位机和64位机编程时应该注意些什么
- 32位机和64位机编程时应该注意些什么
- 企业网站更新时应该注意些什么?
- 正式评估时被访谈人员应该注意什么?
- 我对中文编程和中国应该发展什么语言的论点[原创]
- 收藏:偶要用delphi写几个dll来公开发布出去,让其他工具的程序员调用。应该注意些什么事项 关键字:分类 :个人专区密级 :公开
- 什么是引用,使用引用应该注意的问题
- 编程应该注意
- 正式评估时被访谈人员应该注意什么?[收藏]
- 暑假实习应该注意学习什么
- C#【2】串口编程:如果要自测,串接哪几个口?注意事项有些什么、并举例?
- 新网站做SEO应该注意些什么
- 软件技术人员在发展中应该注意什么
- 中国公司进行海外招聘应该注意什么?
- 64BIT编程应该注意的一点
- 数据库设计应该注意什么?