在include / linux / bitmap.h中,在bitmap_zero()中,为什么使用memset?
static inline void bitmap_zero(unsigned long *dst,int nbits) { if (small_const_nbits(nbits)) *dst = 0UL; else { int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); memset(dst,len); } }
是*det = OUL不够?
给定一个HBITMAP,如何绘制?
高效地获取Windows桌面的屏幕截图
Bitmap.Save“通用错误”
如何检查tiff是否使用TiffBitmapDecoder索引的颜色空间?
graphicsDrawImage导致大红色X的错误
small_const_nbits的定义是:
#define small_const_nbits(nbits) (__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG)
BITS_PER_LONG通常为32或64,具体取决于您所在的机器。
所以,如果你试图清除少于这么多的位数,你当然可以在一个操作中完成 – 这是if语句的前半部分。 如果它长于32或64位,则需要设置多个单词,这是通过memset调用完成的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。