Woher weiß der Linker, wo die Definition einer externen Funktion ist?
Ich habe ein paar Posts gelesen und bin zu dem Schluss gekommen, dass extern dem Compiler mitteilt, dass "diese Funktion existiert, der Code dafür aber woanders ist. Keine Panik." Aber woher weiß der Linker, wo die Funktion definiert ist.
Mein FALL: - Ich arbeite an Keil uvision 4. Es gibt eine Header-Datei grlib.h und die Hauptfunktion befindet sich in grlib_demo.c (sie enthält grlib.h). Jetzt gibt es eine Funktion GrCircleDraw (), die in Circle.c definiert und in grlib_demo.c aufgerufen wird. Es gibt auch eine Anweisung
extern void GrCircleDraw (alle Argumente);
in grlib.h. Meine Frage ist, wie Linker weiß, wo die Definition von GrCircleDraw () ist, da Circle.c nicht in grlib.h und grlib_demo.c enthalten ist
Hinweis: - Die Dateien grlib.h und Circle.c befinden sich im selben Ordner. Der Code wird erfolgreich ausgeführt.