C size_t
根據Wiki - C data types,size_t
定義於C的stddef.h
(或定義於C++的cstddef.h
這個header檔中)。
#ifndef __SIZE_TYPE__
#define __SIZE_TYPE__ long unsigned int
#endif
#if !(defined (__GNUG__) && defined (size_t))
typedef __SIZE_TYPE__ size_t;
我們可以發現size_t
實際上就是long unsigned int
。
參考About size_t and ptrdiff_t,size_t
型別在不同作業系統上的大小為:
On a 32-bit system size_t will take 32 bits, on a 64-bit one 64 bits.
在32-bit系統上佔4 bytes,在64-bit系統上佔8 bytes。
對於64-bit系統來說,上述說法與stddef.h
是吻合的。(那32-bit系統呢?)