在创建自己的C库时,应该如何保存用于其他功能的功能?
例如,这是一个在我创建的其他函数中反复调用的函数:
int strlen(char *s){
int counter=0;
for(int i=0; s[i] != '\0'; i++){
counter++;
}
return counter;
}
我正在寻找一种将其包含为util的方法,但我不确定如何保存然后将其实现以分隔我创建的.c函数。
答案 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)