Cのポインタを整数に変換する Cのポインタを整数に変換したいときがあります。このとき問題になるのは、ポインタのサイズが int と同じとは限らないということです。たとえば、 x86_64 の 64ビットのバイナリでは sizeof(int) = 4, sizeof(void *) = 8 となります。ポインタと同じサイズの整数を使いたい場合は C99 で導入された stdint.h で提供される intptr_t または uintptr_t を使います。 stdint.h には他にも int32_t や ... > このページを見る
最終更新時間:
2006年04月22日21時57分
みんなのブックマーク 人気(0) 新着
-
C99から。
- uintptr_tという型(C99)でポインタの型も簡単解決
- VC++にはstdint.hが用意されてない模様。/ VC++用のstdint.hを公開してる人も居るようだけど仕事で使うには厳しいか。
- ポインタのビット幅問題にわずらわされないために uintptr_t または intptr_t を使え。
- 「C99 で導入された stdint.h で提供される intptr_t または uintptr_t を使います。 」
- 「ポインタと同じサイズの整数を使いたい場合は C99 で導入された stdint.h で提供される intptr_t または uintptr_t を使います。」
- Gauche読んでたらついうっかりたどりついた
- intptr_t, uintptr_t
- 32/64bit環境でポインタを格納するにはuintptr_t。
- stdint.h ではポインタと同じサイズの整数の型 intptr_t, uintptr_t およびその他の便利な整数の型が提供されています
- 80へえ。知らなかったす。
- sizeof(void*) < sizeof(uint64_t)の場合の符号拡張を避ける話とか。
- 64ビット環境のことなんて考えたこともなかったや。ていうか、LPARAMやWPARAM使ってるWindowsプログラムってほとんど動かないんじゃ。。







![C言語 ポインタが理解できない理由 [改訂新版] (プログラミングの教科書)](http://ecx.images-amazon.com/images/I/41PCjVhiM2L._SL75_.jpg)

