具體位置:geekos-0.3.0\src\project6\src\common\string.c

版本是geekos-0.3.0,不知道該BUG是不是故意留下來的^_^

原來的函數(shù)如下:

int ?memcmp( const ? void ? * s1_,? const ? void ? * s2_,?size_t?n)
{
????
const ?signed? char ? * s1? = ?s1_,? * s2? = ?s2_;

????
while ?(n? > ? 0 )? {????????? // 注意這里,n的值沒有改變
????? int ?cmp? = ? * s1? - ? * s2;
?????
if ?(cmp? != ? 0 )
?????????
return ?cmp;
?????
++ s1;
?????
++ s2;
????}


????
return ? 0 ;
}



修正的方法很簡單:

while (n-- > 0) {???//處理n的值就OK了