美文网首页
_INTSIZEOF宏

_INTSIZEOF宏

作者: 李相赫的乐芙兰 | 来源:发表于2018-09-21 15:48 被阅读6次

    vadefs.h中定义了这样一个宏

    #define _INTSIZEOF(n) ( sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )

    它的作用是获取类型n的大小,但要向上为取整int的整数倍

    例如在sizeof(int)=4的前提下

    如果sizeof(n) = 4,则结果为4

    如果sizeof(n) = 5,则结果为8

    由于sizeof(int)一定是2的指数幂,即当x为2的k次方时,有这样一个性质:

    N&(~(x-1)) 等价于 N-(N%x)

    所以宏利用了这个性质完成了向上取整。不过如果sizeof(int)不是2的指数幂,就不成立了

    相关文章

      网友评论

          本文标题:_INTSIZEOF宏

          本文链接:https://www.haomeiwen.com/subject/rjtznftx.html