int,int32_t,int64_t
来源:互联网 发布:淘宝默认收货是几天 编辑:程序博客网 时间:2024/06/15 13:49
一、数据类型特别是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来替代它。
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简介
- andoird + wcf开发实例
- JavaScript简单试验场——hello world
- Spring中获得dataSurce对象的方法
- 今天开始变牛逼!!!
- Android与OpenCV2.4.4(2013最新)搭建图像处理框架
- int,int32_t,int64_t
- UITextView 退出键盘的方式
- Lucene学习资料--不间断更新
- 消息通信机制NSNotificationCenter
- Starling VertexData的数据段意义
- 如何从 Visual C++ UNIX 格式保存文件
- 张宴HTTPSQS学习
- dc插座的选择
- Asp.net网页中DataGridView数据导出到Excel