创建C库时如何保存utils?

时间:2019-04-05 13:44:22

标签: c

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

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

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

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

2 个答案:

答案 0 :(得分:1)

在源代码树的某个位置创建一个私有头文件,例如直接在库的源文件旁边。在此头文件中声明实用程序功能。然后添加一个带有其实现的源文件,并使该源文件成为您图书馆资源的一部分。

实际上,库中“客户端可见”函数和“仅内部”函数之间的唯一区别是是否将声明标头设为公开。

答案 1 :(得分:0)

  

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

当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>


强烈建议将 same 函数签名用作标准函数。

// int TP_strlen(char *s)
size_t TP_strlen(const char *s)