开发者

Why does converting from a size_t to an unsigned int give me a warning?

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 l开发者_如何学JAVAoss 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜