int,int32_t,int64_t
来源:互联网 发布:php 考试开源系统源码 编辑:程序博客网 时间:2024/06/03 20:31
跨平台易导致:
一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:
16位平台
char
short
int
long
指针
32位平台
char
short
int
long
long long 8个字节
指针
64位平台
char
short
int
long
long long 8个字节
指针
二、编程注意事项
为了保证平台的通用性,
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来替代它。
- [转载]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简介
- select new com.clsss 报 could not instantiate class from tuple
- 基于Andoird 4.2.2的同步框架源代码学习——同步发起端
- table 边框问题
- [linux]linux内核编译过程的最终总结版
- Linux2.6 内核的 Initrd 机制解析
- int,int32_t,int64_t
- httpClient下载图片
- 存储过程实现登录验证
- jsp下显示中文文件名的图片解决办法
- LeetCode(Oct 28 '12):Pascal's Triangle
- 获取IOS设备的系统版本,硬件名称,mac地址
- 校园网iNode下配置RHEL6网络
- 用于构建强大云应用程序的组件块
- fzu1649(大数素数判定)