1 c++ compiler-construction implementation size-t uint
我一直在批评使用uint而不是使用size_t,但每次检查我正在使用的工具链时,结果都size_t被定义为uint.
是否有任何编译器实现size_t实际上不是uint?批评的理由是什么?
size_t 是"匹配您可以在机器中使用的最大可能地址范围的大小"(或某些词语大致相同的效果).
特别是,size_t64位机器上为64位,32位系统上为32位.
我假设uint是缺少的unsigned int,这通常是32位(这些天,一些较旧的系统将使用16位整数).因此,在64位系统上,unsigned int仍然是32位,尽管内存分配,字符串等的大小可能大于32位 - 如果您尝试使用uint该大小,这将导致问题.