任何人都可以在初级 C 程序员可以理解的水平上解释这个函数的作用吗?
unsigned getunsigned(unsigned char *bufp, int len) {
unsigned value = 0;
int shift = 0;
while (len--) {
value |= *bufp++ << shift;
shift += 8;
}
return value;
}
我想最让我头疼的一句话是:
value |= *bufp++ << shift;
另外,任何人都可以提供一种方法来重写它,以便没有经验的 C 程序员更清楚地理解吗?
我在为一项作业进行研究时在网上找到了这段代码,除非我完全理解它在做什么以及它是如何做的,否则我宁愿不使用它。