Como o vinculador sabe onde está a definição de uma função externa?
Eu li alguns posts e concluí que extern diz ao compilador que "esta função existe, mas o código para ela está em outro lugar. Não entre em pânico". Mas como o vinculador sabe onde a função está definida?
Meu CASE: - Estou trabalhando no Keil uvision 4. Há um arquivo de cabeçalho grlib.h e a função main está em grlib_demo.c (inclui grlib.h). Agora, há uma função GrCircleDraw () que é definida em Circle.c e chamada em grlib_demo.c, há também uma instrução
extern void GrCircleDraw (todos os argumentos);
em grlib.h. Minha consulta é como linker sabe onde a definição de GrCircleDraw () é desde Circle.c não está incluído em grlib.h e grlib_demo.c
Nota: - Os arquivos grlib.he Circle.c estão na mesma pasta. O código é executado com sucesso.