utikawa
(usa Ubuntu)
Enviado em 25/12/2007 - 22:38h
Quando existem vários arquivos de código fonte, o procedimento normal é de se existir um arquivo header para cada um dos arquivos, de modo a "informar" aos outros arquivos o que é que cada um contém. Vamos supor que existam 3 arquivos: programa.c, strings.c e matematica.c
Em strings.c deverão existir funções para trabalhar com strings, matematica.c deverá conter funções para cálculo matemático e programa.c conterá a função main e o restante do código. Se em programa.c você tentar chamar uma função que existe em matematica.c, como o compilador sabe que ela está lá? Para o compilador a função não existe! Assim o arquivo matematica.h conteria os protótipos das funções matemáticas e strings.h conteria os protótipos das funções para manipulação de strings. Para usar estes arquivos .h, deve-se incluí-los no arquivo .c que depende das informações dele. Assim, em programa.c deveriam existir as seguintes linhas conforme o nosso exemplo:
#include "strings.h"
#include "matematica.h"
É para isto que servem os arquivos header. Eles são apenas incluídos em arquivos .c e portanto seu conteúdo será compilado durante a compilação do arquivo .c que os incluiu e portanto eles não são compilados diretamente!
Para compilar um software com os arquivos citados, deveríamos executar os comandos abaixo:
gcc -c -o matematica.o matematica.c
gcc -c -o strings.o strings.c
gcc -o programa programa.c matematica.o strings.o
Espero também ter sido claro e qualquer dúvida é só postar!
Abraços e Feliz Natal!!!