strtol.c--->strtoul.c
因为上面的文件用到了strtoul.c,所以就直接分析这个文件。
说实话,还是调试时,看代码较快。我于是写了一个main
int main()
{
char *s="0123";
long num;
int c;
c=strtoul(s,0,8);
printf("%ld\n",c);
}
再编译,然后执行。得到结果,再回过头来,看代码,发现有一段:
if (base == 8) {
for ( ; ; p += 1) {
digit = *p - '0';
if (digit > 7) {
break;
}
result = (result << 3) + digit;
anyDigits = 1;
}
不过,anyDigits这个变量不知道它的用途。一想,先过吧,读程序,最关键的是要知道这段程序的用途,至于具体实现,慢慢看吧。
因为上面的文件用到了strtoul.c,所以就直接分析这个文件。
说实话,还是调试时,看代码较快。我于是写了一个main
int main()
{
char *s="0123";
long num;
int c;
c=strtoul(s,0,8);
printf("%ld\n",c);
}
再编译,然后执行。得到结果,再回过头来,看代码,发现有一段:
if (base == 8) {
for ( ; ; p += 1) {
digit = *p - '0';
if (digit > 7) {
break;
}
result = (result << 3) + digit;
anyDigits = 1;
}
不过,anyDigits这个变量不知道它的用途。一想,先过吧,读程序,最关键的是要知道这段程序的用途,至于具体实现,慢慢看吧。