uintptr_t
読み:ユーイントポインター-アンダースコア-ティー
外語:uintptr_t
Cで、ポインター保持に充分な大きさの符号なしの整数型。C99(ISO/IEC 9899:1999)で追加された。
概要
ポインターを整数型変数に代入して演算し、再びポインター変数に戻すような処理はよく行なわれる。
しかしその時の整数型変数をintやlongとすると、移植性が大きく損なわれる。
そもそもそのような処理をするプログラムに移植性があるのかという問題はさておき、この目的で処理系の独自実装の型を用意する処理系も存在したが、C99から公式仕様として導入された。
この型は、少なくともポインター長が保証される。
書式
#include <stdint.h>
定義
FreeBSDでは、次のように定義される。
stdint.hまたはsys/stdint.h
typedef __uintptr_t uintptr_t;
machine/_types.h
typedef unsigned int __uint32_t;
typedef __uint32_t __uintptr_t;
つまり、32ビット環境のFreeBSDでは、間接的にunsigned intで定義される。
補足
signedな関連型に、intptr_tがある。
再検索