From 8c3713c4b605d83bd47722d5e9ac5efb2e2471f8 Mon Sep 17 00:00:00 2001 From: Marco Paland Date: Wed, 11 Apr 2018 12:22:51 +0200 Subject: refactor(printf): improved _strlen() function --- printf.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'printf.c') diff --git a/printf.c b/printf.c index 3cc7aa2..21d5620 100644 --- a/printf.c +++ b/printf.c @@ -70,22 +70,21 @@ // \return The length of the string (excluding the terminating 0) static inline size_t _strlen(const char* str) { - size_t len = 0U; - while (str[len] != (char)0) { - len++; - } - return len; + const char* s; + for (s = str; *s; ++s); + return (size_t)(s - str); } -// returns true if char is a digit +// internal test if char is a digit (0-9) +// \return true if char is a digit static inline bool _is_digit(char ch) { return (ch >= '0') && (ch <= '9'); } -// internal ASCII to unsigned int conversion +// internal ASCII string to unsigned int conversion static inline unsigned int _atoi(const char** str) { unsigned int i = 0U; -- cgit v1.2.3