Ric*_*ard 1 c++ comparison unsigned
我在一段我想要了解的代码中找到了这个.这可能是一些聪明的伎俩,但我不明白.什么时候
unsigned(x-dx)<unsigned(size)
Run Code Online (Sandbox Code Playgroud)
真正?x,dx和size都是(signed)int.从我猜测的上下文来看,x-dx不应小于零且不大于大小.但我不明白未签名的伎俩.
有人可以解释它或告诉我在哪里可以找到更多关于它的信息吗?
thx提前
此代码确定是否x - dx在[ 0... size] 范围内:如果x - dx为负数,则在转换为时会变为大的正值unsigned.在此上下文中,大意味着大于类型[ signed]的任何正值的值int.也就是比较
unsigned(x - dx) < unsigned(size)
Run Code Online (Sandbox Code Playgroud)
如果x - dx是非负的且小于,则为真size.