如果不考虑可移植性:
在32位平台上更应该使用unsigned
int,因为它:
1)和unsigned long 一样的大小,32位可以表示到42.9亿。
2) 比unsigned long更常用
3)
和std::size_t是一样的类型
如果是64位平台的话:
1) unsinged int仍是32位,而unsigned
long就是64位了。
2) 更应该使用unsigned
long因为处理器对64位具有更快的处理速度。
就目前而言,64位平台还不够成熟,所以向64位平台的移植基本不做考虑。
但是如果你坚持要考虑可移植性(注意是硬件32位平台向64位移植,而非软件):
1)
如果对速度敏感:使用unsigned long,无论在32位还是64位都有最快的处理速度。
2) 如果对内存敏感:使用unsigned
int,使用内存量不会因平台而改变。
不过通常对于硬件平台的可移植性的考虑都是多余的(不够敏捷哦)。