我已经为strncpy函数创建了一个包装器。
我必须在我的项目中使用它,其中包含许多标题和源文件(大约20个一起)。这个包装器将在大多数中使用。
由于代码很短,我想知道在我的项目中实现这个包装器的最佳方法是什么?
我认为在名为utilities.h的头文件中使用它可能很有用。并在每个需要它的源文件中包含此标头?
也许还有未来的项目?
我是C课程的新手,所以只是在这个问题上寻找一些好的指导。
非常感谢,
/* Null terminate a string after coping */
char* strncpy_wrapper(char *dest, const char* source,
const size_t dest_size)
{
strncpy(dest, source, dest_size);
/*
* If the destination is greater than zero terminate with a null.
*/
if(dest_size > 0)
{
dest[dest_size - 1] = '\0';
}
return dest;
}
答案 0 :(得分:3)
使用标题是个好主意。我建议你给它一个“守卫”。类似的东西:
#ifndef UTILITIES_H
#define UTILITIES_H
//definitions here
#endif //UTILITIES_H
答案 1 :(得分:2)
您将它放在utilities.h
文件中的想法并不错。这是一个非常常见的解决方案。但请确保没有更具体的方法可以在应用程序中对此功能进行分类。众所周知 - 所有内容都可以标记为杂项,这正是utilities.h
文件的含义。
答案 2 :(得分:1)
我认为你走的是正确的道路。构建具有常用功能的库是很常见的,可以在必要时包含这些功能。您经常会找到它们的名称,如Helper,Common或您建议的Utilities。