对于64为系统:

typedef  signed char  int8_t;
typedef  short  int   int16_t;
typedef  int          int32_t;
# if __WORDSIZE==64
typedef long int int64_t;
#else 
typedef long long int  int64_t;

 

intptr_t 的定义:

/* Types for `void *' pointers. */
#if __WORDSIZE == 64
# ifndef __intptr_t_defined
typedef long int intptr_t;
# define __intptr_t_defined
# endif
typedef unsigned long int uintptr_t;
#else
# ifndef __intptr_t_defined
typedef int intptr_t;
# define __intptr_t_defined
# endif
typedef unsigned int uintptr_t;
#endif

  

intptr_t 指针(转) 

可以看出指针用来保存变量或常量的地址,地址位宽由处理器的位数决定。Windows 程序中的句柄就是一个地址。intptr_t 在不同平台上不一样,始终与地址位数相同,用来存放地址。

使用intptr_t 来保证平台的通用性,在不同平台上编译的长度不同。

对于64为系统:

typedef  signed char  int8_t;
typedef  short  int   int16_t;
typedef  int          int32_t;
# if __WORDSIZE==64
typedef long int int64_t;
#else 
typedef long long int  int64_t;

 

intptr_t 的定义:

/* Types for `void *' pointers. */
#if __WORDSIZE == 64
# ifndef __intptr_t_defined
typedef long int intptr_t;
# define __intptr_t_defined
# endif
typedef unsigned long int uintptr_t;
#else
# ifndef __intptr_t_defined
typedef int intptr_t;
# define __intptr_t_defined
# endif
typedef unsigned int uintptr_t;
#endif

  

intptr_t 指针(转) 

可以看出指针用来保存变量或常量的地址,地址位宽由处理器的位数决定。Windows 程序中的句柄就是一个地址。intptr_t 在不同平台上不一样,始终与地址位数相同,用来存放地址。

使用intptr_t 来保证平台的通用性,在不同平台上编译的长度不同。

相关文章:

  • 2022-12-23
  • 2021-10-18
  • 2021-07-28
  • 2022-12-23
  • 2021-10-01
  • 2022-02-15
  • 2022-02-27
猜你喜欢
  • 2021-07-06
  • 2021-11-17
  • 2022-01-04
  • 2021-08-17
  • 2022-02-14
  • 2022-12-23
相关资源
相似解决方案