> gccのHANDLERS.Hのtiffhandler.cのUI、としてコンパイルされている3つのファイル、
/* HANDLERS.H */ #define TRUE 1 #define FALSE 0 /* Functions declarations - included in both UI.C & tiffhandler.c */ int canHandle(char *); int drawImage(char *); int saveFile(char *);
/* tiffhandler.c */ #include "HANDLERS.H" int canHandle(char *fileName){ return TRUE; } int drawImage(char *fileName){ return TRUE; } int saveFile(char *fileName){ return TRUE; }
/* UI.C */ #include "HANDLERS.H" int main(void){ }
です。 C
私の質問は、
HANDLERS.H
は両方UI.C
& tiffhandler.c
に含まれています。したがって、関数宣言は両方に含まれています。
相をリンク時tiffhandler.o
& UI.o
がリンクされる前に、なぜリンカは(canHandle
を言う)、各機能のために複数の関数宣言を言って、文句を言わないのですか?