У меня есть код:
unsigned int length = strlen(somestring);
Я компилирую с уровнем предупреждения 4, и он говорит мне, что «преобразование из size_t
в unsigned int
, возможная потеря данных», когда size_t
равно typedef
для unsigned int
.
Почему!?
Edit:
Я только что решил свою проблему. Я пользователь XP, и мой компилятор проверял совместимость на 64 бита. Поскольку size_t
зависит от платформы, для 64-битной версии это будет unsigned long long
, где это не то же самое, что unsigned int
.