Jelajahi Sumber

Add really cheap atol() since sizeof(int) == sizeof(long) here anyway.

Andreas Kling 6 tahun lalu
induk
melakukan
9b70808ab5
2 mengubah file dengan 8 tambahan dan 1 penghapusan
  1. 7 1
      LibC/stdlib.cpp
  2. 1 0
      LibC/stdlib.h

+ 7 - 1
LibC/stdlib.cpp

@@ -103,11 +103,17 @@ int atoi(const char* str)
             continue;
         }
         if (str[i] < '0' || str[i] > '9')
-            return 0;
+            return value;
         value = value * 10;
         value += str[i] - '0';
     }
     return isNegative ? -value : value;
 }
 
+long atol(const char* str)
+{
+    static_assert(sizeof(int) == sizeof(long));
+    return atoi(str);
+}
+
 }

+ 1 - 0
LibC/stdlib.h

@@ -11,6 +11,7 @@ void* calloc(size_t nmemb, size_t);
 void* realloc(void *ptr, size_t);
 char* getenv(const char* name);
 int atoi(const char*);
+long atol(const char*);
 
 void exit(int status) __NORETURN;
 void abort() __NORETURN;