FreeRTOS 中 strnlen 的隐式声明

Implicit declaration of strnlen in FreeRTOS

在使用 C99 方言使用 GCC 开发我的 FreeRTOS 应用程序时,我决定使用 strnlen,假设它是一个标准的 C 函数,我只需要包含它即可使用它。编译器警告我 strnlen 的隐式声明,让我意识到它不是 C99 标准的一部分。但是,由于没有任何链接器错误,我假设该函数确实存在于某处..

如果不是 string.h,我应该包括什么 header 才能使用 strnlen?大多数在线网站和 strnlen 的手册页都提到包括 string.h 作为 header

自己实现就行,没有特别的header。

size_t strnlen(const char *s, size_t maxlen) {
    size_t len = 0;
    if(s)
        for(char c = *s; (len < maxlen && c != '[=10=]'); c = *++s) len++;
    return len;
}