你写uint32,然后str真有4个G以上长度的时候你就老实了。
写c/c++最最基本的一件事:比较两个数的时候,请务必尽可能保证这两个数类型一致。
如果一定要不一致,那你千万当心。
要不然不知道有多少屎要去踩。
就你这个例子,strlen返回值就是size_t,64位系统里他就是有可能返回大于4G的值,那么如果你用uint,比较32和64的时候隐式转换为64,32转64的数字永远不可能大于4G,喜提无限循环。
这不是格局不格局的问题,str长度大于4…。
你写uint32,然后str真有4个G以上长度的时候你就老实了。
写c/c++最最基本的一件事:比较两个数的时候,请务必尽可能保证这两个数类型一致。
如果一定要不一致,那你千万当心。
要不然不知道有多少屎要去踩。
就你这个例子,strlen返回值就是size_t,64位系统里他就是有可能返回大于4G的值,那么如果你用uint,比较32和64的时候隐式转换为64,32转64的数字永远不可能大于4G,喜提无限循环。
这不是格局不格局的问题,str长度大于4…。
流传甚广的联合国宪章最薄我没看过,但今天看了一个联合国决议,...
2025-06-20阅读全文 >>这个问题提得很棒,而且很多人第一次听说这个现象时都会好奇: ...
2025-06-20阅读全文 >>域名投资确实不是遍地黄金的年代了, 但是从2003年我在大学...
2025-06-20阅读全文 >>首先淘汰的就是我这样的,所谓的知识工作者。 几乎我能做的事,...
2025-06-20阅读全文 >>手机邀请回答的时候只看到个标题,所以说了用手机部署,题主有闲...
2025-06-20阅读全文 >>