Неявное объявление strnlen во FreeRTOS - PullRequest
0 голосов
/ 09 января 2020

При разработке моего приложения FreeRTOS, предназначенного для ARM Cortex M3 с G CC, с использованием диалекта C99, я решил использовать strnlen, предполагая, что это стандартная функция C и что мне просто нужно включить ее для использования. Компилятор предупреждает меня о неявном объявлении для strnlen, заставляя меня понять, что это не является частью стандарта C99. Однако, поскольку не было никаких ошибок компоновщика, я предполагаю, что функция где-то существует ..

Какой заголовок я должен включить, чтобы использовать strnlen, если это не string.h? На большинстве веб-сайтов в Интернете и на странице руководства для strnlen упоминается, в том числе string.h в качестве заголовка

1 Ответ

3 голосов
/ 09 января 2020

Просто реализуй это сам, без определенного заголовка.

size_t strnlen(const char *s, size_t maxlen) {
    size_t len = 0;
    if(s)
        for(char c = *s; (len < maxlen && c != '\0'); c = *++s) len++;
    return len;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...