我正在写一个C语言的用户空间(现在是最小的),并且我把它制作得像BusyBox,你可以通过调用带有名字的符号链接来运行一个命令。我有一个“主”C文件,其中包含其中的所有其他文件(其他文件是头文件),然后在符号链接名称匹配时运行它们的代码。我想知道是否可以在不同的头文件中使用相同名称的函数?在多个头文件中使用相同的函数名是否是一种好的做法?
举例来说,如果我有thing1.h
:
void help(void)
{
// Print help text for thing1
}
int thing1(int argc, char *argv[])
{
if (something)
help();
}
而且thing2.h
:
void help(void)
{
// Print help text for thing2
}
int thing2(int argc, char *argv[])
{
if (something)
help();
}
而且everything.c
:
#include "thing1.h"
#include "thing2.h"
int main(int argc, char *argv[])
{
if (something)
thing1(argc, argv);
else
thing2(argc, argv);
}
它会更好那些帮助功能重命名为thing1_help
和thing2_help
,还是可以离开它们原样?
你为什么不编译你的样本?如果你的编译器说它不好,你不得不接受这个,不管网上的那些随机的人想到它。 – nvoigt 2014-10-08 05:52:14
为什么在头文件中有代码?这是不好的做法。 – weston 2014-10-08 05:52:52
否;重复两个头文件中的help()函数并不是一个好主意。思考SPOT - 单点真相;也认为干 - 不要重复自己。将实际的代码嵌入到头文件中也不是一个好主意。你只应该为'inline'函数做到这一点,并且只有当你知道你在做什么。否则,标题只能包含变量和函数的声明,而不能包含定义。 – 2014-10-08 05:54:55