宏_bnd(X,bnd)是什么意思?

时间:2014-04-14 12:25:34

标签: c macros

最近我看了有人实现自己的printf使用宏_bnd(x,bnd),但我不明白宏的意思是什么。

#define _bnd(x, bnd) (sizeof(x) + (bnd) & ~(bnd))

我知道按位运算符和sizeof()

1 个答案:

答案 0 :(得分:0)

这是内部实现的魔力,依赖于实现 变量参数的参数地址的属性 功能

除非你需要知道这一切意味着什么,否则最好 远离它。否则它可能诱惑你依赖它。

你的宏应该是

#define _bnd(X, bnd) (sizeof(X) + (bnd) & ~(bnd))
             ^
             check in your post

你也可以通过扩展基本的算术运算来了解。为此你应该知道sizeof()tilde operator以及bitwise operatior