一、批量转移字符到缓冲区
bufptr = buffer;
void bufwrite(char* p,int n)
{
while(n>0)
{
int k,rem;
if(bufptr == &buffer[N])
flushbuffer();
rem = N - (bufptr - buffer);
k = n > rem ? rem : n;
memcpy(bufptr,p,k);
bufptr += k;
p += k;
n -= k;
}
}
二、移位运算符
有符号整数的向右移位运算也不等于除以2的某次幂。 如: (-1)>> 1 一般不等于0,而 (-1)/2在大多数C实现上求值结果为0.