intptr_t 指针(转)
reference:http://muchong.com/bbs/
对于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
可以看出指针用来保存变量或常量的地址,地址位宽由处理器的位数决定。Windows 程序中的句柄就是一个地址。intptr_t 在不同平台上不一样,始终与地址位数相同,用来存放地址。
使用intptr_t 来保证平台的通用性,在不同平台上编译的长度不同。
posted on 2018-12-21 11:15 limanjihe 阅读(2004) 评论(0) 编辑 收藏 举报