当前位置: 技术问答>linux和unix
一段4.4BSD源码含义求解?
来源: 互联网 发布时间:2015-02-12
本文导语: #define MH_ALIGN(m, len) { (m)->m_data += (MHLEN - (len)) &~ (sizeof(long) - 1); } 其中MHLEN为100,long means unsigned long,个人理解应该是得到(MHLEN - (len))的前几位,但又和上下文不匹配,请高手指教。 | ...
#define MH_ALIGN(m, len)
{ (m)->m_data += (MHLEN - (len)) &~ (sizeof(long) - 1); }
其中MHLEN为100,long means unsigned long,个人理解应该是得到(MHLEN - (len))的前几位,但又和上下文不匹配,请高手指教。
{ (m)->m_data += (MHLEN - (len)) &~ (sizeof(long) - 1); }
其中MHLEN为100,long means unsigned long,个人理解应该是得到(MHLEN - (len))的前几位,但又和上下文不匹配,请高手指教。
|
(MHLEN - (len)) &~ (sizeof(long) - 1); 可能是对(MHLEN - (len)) 的结果进行系统子对齐计算,通过这样的计算可以保证数据在内存中按照字对其方式存储,至于为什么要用MHLEN 减,你给的信息量不够,无法回答