int,int32_t,int64_t
来源:互联网 发布:spycall软件 编辑:程序博客网 时间:2024/06/05 07:33
一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:
16位平台
char
short
int
long
指针
32位平台
char
short
int
long
long long 8个字节
指针
64位平台
char
short
int
long
long long 8个字节
指针
二、编程注意事项
为了保证平台的通用性,程序中尽量不要使用long数据库型。可以使用固定大小的数据类型宏定义:
typedef signed char
typedef short int
typedef int
# if __WORDSIZE == 64
typedef long int
# else
__extension__
typedef long long int
#endif
三、使用int时也可以使用intptr_t来保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台长度,比如64位机器它的长度就是8字节,32位机器它的长度是4字节,定义如下:
#if __WORDSIZE == 64
typedef long int
#else
typedef int
#endif
编程中要尽量使用sizeof来计算数据类型的大小
以上类型定义都有相应的无符号类型。
另外还有ssize_t和size_t分别是sign size_t和unsigned signed size of computer word size。它们也是表示计算机的字长,在32位机器上是int型,在64位机器上long型,从某种意义上来说它们等同于intptr_t和 uintptr_t。它们在stddef.h里面定义。需要注意的是socket的accept函数在有些操作系统上使用size_t是不正确的,因为 accept接收的int*类型,而size_t可能是long int 类型。后来BSD使用sock_t来替代它。
From : http://blog.sina.com.cn/s/blog_4b9eab320100sdex.html
- [转载]int,int32_t,int64_t
- int,int32_t,int64_t
- int,int32_t,int64_t
- int,int32_t,int64_t
- [转载]int,int32_t,int64_t
- [转载]int,int32_t,int64_t
- int,int32_t,int64_t
- int,int32_t,int64_t
- int,int32_t,int64_t
- int,int32_t,int64_t
- int int32_t int64_t 跨平台
- int与int32_t与int64_t
- int,int32_t,int64_t和struct内存对齐
- int ,long , long long,int32_t,int64_t 类型表示范围
- int8_t int16_t int32_t int64_t
- stdint.h[int8_t, int16_t, int32_t, int64_t]
- stdint.h[int8_t, int16_t, int32_t, int64_t]
- (u)int8_t/(u)int16_t/(u)int32_t/(u)int64_t/(u)intptr_t简介
- 网络相关配置文件介绍
- 空间数据库之pl/sql,sql*plus,pl/sql developer的区别
- 查找兄弟单词(2012/5/6 百度实习笔试题)
- Java集合类
- 《perl语言入门》之 第三章 列表与数组
- int,int32_t,int64_t
- i.mx53 GPIO中断配置
- A::A();
- Android 游戏开发之View框架
- linux命令总结
- 我国将开展第一次全国可移动文物普查-可移动文物-普查
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)
- 如何实现开机启动、清缓存、杀进程、悬浮窗口单双击区分,附源码
- jQuery EasyUI 学习资料