在创建自己的C库时,如何保存用于其他功能的函数?
例如,这是一个在我创建的其他函数中重复调用的函数:
int strlen(char *s){
int counter=0;
for(int i=0; s[i] != '\0'; i++){
counter++;
}
return counter;
}
我正在寻找一种方法将其作为一个包含,但我不太确定如何保存然后实现它来分离我创建的.c函数。
在源树中的某处创建一个私有头文件,例如直接与库的源文件一起。在此头文件中声明实用程序函数。然后添加一个包含其实现的源文件,并将此源文件作为库源的一部分。
实际上,库中“客户端可见”功能和“仅内部”功能之间的唯一区别在于您是否公开声明标头。
如何在创建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)