Java教程

uboot代码阅读之向下舍入到指定数值的倍数

本文主要是介绍uboot代码阅读之向下舍入到指定数值的倍数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
top = rounddown(top-sizeof(struct global_data), 16);

//其中
#define rounddown(x, y) (                \
{                            \
    typeof(x) __x = (x);                \
    __x - (__x % (y));                \
}                            \
)

宏定义中:

x表示要向下舍入的数值。

y表示的是用于舍入倍数的指定数值。

也就是将x向下舍入为小于等于x的y的倍数。

 

实现过程
typeof(x) __x = (x)

使用一个与参数x相同数据类型的临时变量__x来保存参数x的值,避免类似自增或自减带来的影响。

__x - (__x % (y))

1)先计算__x % (y),得到x除以y的余数。

2)再用x减去上一步得到的余数,得到的就是向下舍入的数值。
————————————————
版权声明:本文为CSDN博主「dadalaohua」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012028275/article/details/118068422

这篇关于uboot代码阅读之向下舍入到指定数值的倍数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!