最近我看到有人使用宏_bnd(x,bnd)实现了自己的printf,但是我不明白这个宏是什么意思。
#define _bnd(x, bnd) (sizeof(x) + (bnd) & ~(bnd))我知道按位运算符和sizeof()
发布于 2014-04-14 20:44:09
它的内部实现魔术,利用变量参数函数的参数地址的依赖于实现的属性。
除非你需要知道这一切意味着什么,否则最好远离它。否则,它可能会诱使您依赖它。
你的宏应该是
#define _bnd(X, bnd) (sizeof(X) + (bnd) & ~(bnd))
^
check in your post你也可以通过扩展basic到达式operation.For来知道,你应该知道sizeof(),tilde operator和bitwise operatior。
https://stackoverflow.com/questions/23060035
复制相似问题