我正在寫一個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