标签:ar c amp r bs as har c语言 测试
k&r习题3-4,原始itoa不能处理最大负数(最大指的是绝对值最大而不是数值),因为最大负数绝对值比最大正数绝对值大1,n=-n这个表达式会溢出。/*
* compile with reverse.c
*/
void itoa(int n, char s[])
{
int i;
unsigned sign;
if (n<0)
sign=-n;
i=0;
do {
s[i++]=sign % 10 + ‘0‘;
}while ((sign /= 10)>0);
if (n < 0)
s[i++] = ‘-‘;
s[i]=‘\0‘;
reverse(s);
}
标签:ar c amp r bs as har c语言 测试
原文地址:http://my.oschina.net/sukai/blog/313106