DIY

C 语言有什么奇技淫巧?

小莫卡[果壳学院政委] Rank: 16Rank: 16Rank: 16Rank: 16 果壳热讲师 程序猿鞭策师 果壳热教职工 果壳学院校长/副校长 果壳币: 114

发表于 2020-5-31 17:50:45 | 1 条回复 | 395 次浏览

快速范围判断

经常要批量判断某些值在不在范围内,如果 int 检测的是 [0, N] 的话,则:if (x >= 0 && x < N) ...

众所周知,现代 CPU 优化,减分支是重要手段。

上述两次判断可以简写为:if (((unsigned int)x) < N) ...


代码实现了减少判断次数的效果。

但如果 int 检测范围是 [minx, maxx] 这种更常见的形式的话,怎么办呢?
注:minx可以为负数。
if (x >= minx && x <= maxx) ...

我知道答案 采纳即获100 果壳币已有1人回答
发新帖
发新帖
您需要登录后才可以回帖 登录 | 注册成为果猿 微信登录

手机版

© 2020-2030 果壳热 All rights reserved.

Powered by GUOHOT XS8.8. Theme designed by GUOKEHOT.

top bottom