C/C++/Java/C#的基础类型(三)

2013-02-08 14:33:44 · 作者: · 浏览: 1247


  LP64指的是LONG/POINTER字长为64位;
  ILP64指的是INT/LONG/POINT字长为64位;
  LLP64指的是LONGLONG/POINTER字长为64位;
  ILP32指的是INT/LONG/POINTER字长为32位;
  LP32指的是LONG/POINT字长是32位的,INT字长为16位.
  注1:32位Windows采用的是ILP32数据模型,64位Windows采用LLP64数据模型.
  注2:32位的Linux/Unix使用ILP32数据模型,64位Linux/Unix使用LP64数据模型.
  注3:为了增加代码的移植性,打印无符号整形数,不管申明时是如何定义的,统一使用 %lu.
  注4:为了保证平台的通用性,代码中尽量不要使用long数据库型.
  注5:使用INT时也可以使用intptr_t来保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台长度,比如:64位机器上长度为8字节,32位机器上长度为4字节.
  注6:编写代码时要尽量使用sizeof来计算数据类型的大小.
  注7:ssize_t和size_t分别是signsize_t和unsigned signed size of computer word size.它们也是表示计算机的字长,在32位机器上是int型,在64位机器上long型,从某种意义上来说它们等同于intptr_t和 uintptr_t.
  WINDOWS下数据类型,定义如下:
  类型
  定义
  类型
  定义
  DWORD32
  32位无符号整数
  DWORD64
  64位无符号整数
  INT32
  32位有符号整数
  UINT32
  32位无符号整数
  INT64
  64位有符号整数
  UINT64
  64位无符号整数
  LONG32
  32位有符号整数

  ULONG32
  32位无符号整数
  LONG64
  64位有符号整数
  ULONG64
  64位无符号整数
  DWORD_PTR
  指针精度无符号长整型
  HALF_PTR
  指针大小的一半,有符号
  UHALF_PTR
  指针大小的一半,无符号
  INT_PTR
  指针进度有符号整数
  UINT_PTR
  指针进度无符号整数
  LONG_PTR
  指针进度的有符号长整型
  ULONG_PTR
  指针进度的无符号长整型
  SIZE_T
  指针可用的最大字节数
  SSZIE_T
  有符号SIZE_T
  LPARAM
  与LONG_PTR为同义词
  WParm
  与UINT_PTR为同义词
  POINTER_32
  32位指针类型
  POINTER_64
  64位指针类型