簡易改法
把原本定義成32位元的位址空間 改用intptr_t
Why?
stdint.h 內定義了 intptr_t 這個type
當你需要把pointer 轉型成 integer 的時候 你不確定是32 or 64bit
就可以使用intptr_t
if偵測到是64bit
intptr_t 就是long int ( 64位元的long int 是64bit, 但32位元的long int是32bit)
否則就是 int ( 64位元的 int 是32bit, 32位元的int 也是32bit)
此外size_t 定義成unsigned integer
而且是平台相關的
在64bit machine size_t 是unsigned long
但在32bit machine size_t 是unsigned int
Reference:
http://nickhung0807.blogspot.tw/2014/05/blog-post.html
2016年10月7日 星期五
訂閱:
文章 (Atom)