C语言strlen函数的高效实现方式


偶然在书上看到strlen函数的实现方式如下:

    #include <stdlib.h>
    size_t
    strlen(char *string)
    {
        int length = 0;
        while( *string++ != '\0')
            length += 1;
        return length;
    }

需要从头到尾遍历字符串的每一个字符,感觉不够高效,有没有更为高效的实现方式?
已邀请:

这样每次指针移动同时length+1完全没必要,将指针移动到0字符处,然后减去起始指针就好
    size_t strlen(str) {
        register const char *s;
        for (s = str; *s; ++s);
        return(s - str);
    }

要回复问题请先登录注册