你写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…。
严禁贩卖焦虑!我现在正在用10岁的iMac 27寸给你们回帖...
2025-06-28阅读全文 >>目前最佳的双系统方案: [1]一块固态硬盘,一块机械硬盘. ...
2025-06-28阅读全文 >>没有分界线,编译器和解释器被统一在了被称为 扶她映射(Fut...
2025-06-28阅读全文 >>我是三月份去的新德里,出机场就坐车去萨克特,吃了正宗印度餐,...
2025-06-28阅读全文 >>天塌了??这几个品牌的充电宝我都用过,现在手上还有罗马仕、安...
2025-06-28阅读全文 >>