不往上贴了,就在源码里吧,common/bs.h
注意的是,第一次循环,只写当前字节剩余位,先把原数据左移,把空位留在右侧
然后把源数据右移,因为需要本次写的数据在左边,把需写的移到最右侧,然后和当前字节按位或,就完成了当前字节的写入。
这时要更新i_count
还有一些其它信息的记录
如果还有数据,进入下一次循环,做同样的操作,第二次循环,i_count与第一次是不一样的。
第一次是作为参数传递来的,第二次的i_count,已经不包括第一次写过的了。