通过for循环找到一组数中的最大值和最小值,这里有个小技巧,在初始化的时候要给最小值赋一个最大值,给最大值赋一个最小值。说的有点绕。看下面的code就明白的了
这里给最小值赋的是~0表示unsigned long的最大值,这里也是个小技巧
给最大值赋值的是0
struct {
unsigned long min;
unsigned long max;
} *uV;
for (i = 0; i < count; i++) {
uV[i].min = ~0;
uV[i].max = 0;
list_for_each_entry(opp, &opp_table->opp_list, node) {
if (!opp->available)
continue;
if (opp->supplies[i].u_volt_min < uV[i].min)
uV[i].min = opp->supplies[i].u_volt_min;
if (opp->supplies[i].u_volt_max > uV[i].max)
uV[i].max = opp->supplies[i].u_volt_max;
}
}
通过循环找出一组数据的最大值和最小值的小技巧
最新推荐文章于 2024-08-08 17:37:59 发布