TCP/IP问题
下面的接收数据程序程序中有条语句
for(num_packets = 0; valid_bits; num_packets++)
{
valid_bits &= valid_bits - 1;
}
这段程序我看不懂,希望老师给我解释一下,谢谢!
//****************************************************************/
//CP2200芯片接收数据函数
/****************************************************************/
UCHAR xdata * rcve_frame(void)
{
bit rx_ok;
bit skip = 0;
UINT1 cplen;
unsigned int i;
UCHAR xdata * buf;
unsigned char interrupt_read;
unsigned char valid_bits;
unsigned char num_packets;
interrupt_read = INT1;
interrupt_read = INT0; //清中断标志
if( interrupt_read & RXINT) //判断接收中断是否产生
{
valid_bits = TLBVALID; //对接收数据包进行统计
for(num_packets = 0; valid_bits; num_packets++)
{
valid_bits &= valid_bits - 1;
}
if( num_packets >= 7) //接收区超过7个数据包,停止接收
{
RXCN = RXINH;
}
}