Как сохранить утилиты при создании библиотеки C? - PullRequest
0 голосов
/ 05 апреля 2019

Как мне сохранить функцию, которая используется для других функций, при создании моей собственной библиотеки C?

Например, вот функция, которая неоднократно вызывается в других созданных мной функциях:

int strlen(char *s){
    int counter=0;
    for(int i=0; s[i] != '\0'; i++){
        counter++;
    }
    return counter;
}

Я ищу способ включить это как утилиту, но я неЯ вполне уверен, как сохранить данные и реализовать их в отдельных созданных мною .c функциях.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Создайте частный заголовочный файл где-нибудь в вашем исходном дереве, например, непосредственно рядом с исходными файлами вашей библиотеки.Объявите вспомогательные функции в этом заголовочном файле.Затем добавьте исходный файл с его реализацией и сделайте этот исходный файл частью исходных кодов вашей библиотеки.

По сути, единственное различие между функцией "видимый клиенту" и функцией "только для внутреннего использования" в библиотекеВы делаете публичный заголовок объявления или нет.

0 голосов
/ 05 апреля 2019

Как сохранить утилиты при создании библиотеки C?

Это сложно, когда функция util заменяет стандартную библиотеку тем же именем, что и другим .c файлам, возможно, потребуется оригинальная стандартная функция - особенно для тестового кода для сравнения функций.


Переименовать функцию и сохранить в «TP.c»

// int strlen(char *s){
int TP_strlen(char *s){

Заголовок формы "TP.h"

int TP_strlen(char *s);
// and inline or define
inline int strlen(char *s) { return TP_strlen(s); }

Do not включает в себя "TP.h" и <string.h>


Настоятельно рекомендуем использовать такую ​​же сигнатуру функции в качестве стандартных функций.

// int TP_strlen(char *s)
size_t TP_strlen(const char *s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...