ruby-0.49 missing/strtoul.c 源码分析

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这个变量不知道它的用途。一想,先过吧,读程序,最关键的是要知道这段程序的用途,至于具体实现,慢慢看吧。

猜你喜欢

转载自blog.csdn.net/woshiyilitongdouzi/article/details/79509522