I have the code:
unsigned int length = strlen(somestring);
I'm compiling with the warning level on 4, and it's telling me that "conversion from size_t
to unsigned int
, possible loss of data" when a size_t
is a typedef
for an unsigned int
.
Why!?
Edit:
I just solved my own problem. I'm an XP user, and my compiler was checking for 64 bit compatibility. Since size_t
is platform dependent, for 64 bit it would be an unsigned long long
, where that is not the same as an unsigned int
.
Because unsigned int
is a narrower type on your machine than size_t
. Most likely size_t
is 64 bits wide, while unsigned int
is 32 bits wide.
EDIT: size_t is not a typedef for unsigned int.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.