如何在创建C库时保存util?

问题描述 投票:0回答:2

在创建自己的C库时,如何保存用于其他功能的函数?

例如,这是一个在我创建的其他函数中重复调用的函数:

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

我正在寻找一种方法将其作为一个包含,但我不太确定如何保存然后实现它来分离我创建的.c函数。

c
2个回答
1
投票

在源树中的某处创建一个私有头文件,例如直接与库的源文件一起。在此头文件中声明实用程序函数。然后添加一个包含其实现的源文件,并将此源文件作为库源的一部分。

实际上,库中“客户端可见”功能和“仅内部”功能之间的唯一区别在于您是否公开声明标头。


0
投票

如何在创建C库时保存util?

当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); }

不要同时包括"TP.h"<string.h>


强烈建议使用与标准功能相同的功能签名。

// int TP_strlen(char *s)
size_t TP_strlen(const char *s)
© www.soinside.com 2019 - 2024. All rights reserved.