为什么从size_t转换为unsigned int会给我一个警告?

时间:2010-04-03 02:35:33

标签: c++ size-t

我有代码:

unsigned int length = strlen(somestring);

我正在使用4上的警告级别进行编译,当size_t为{{unsigned int时,它告诉我“从size_t转换为typedef,可能会丢失数据” 1}}表示unsigned int

为什么!?

编辑:

我刚解决了自己的问题。我是XP用户,我的编译器正在检查64位兼容性。由于size_t取决于平台,因此对于64位,它将是unsigned long long,其中unsigned int与{{1}}不同。

1 个答案:

答案 0 :(得分:9)

因为unsigned int是您机器上比size_t更窄的类型。最有可能size_t是64位宽,而unsigned int是32位宽。

编辑:size_t不是unsigned int的typedef。