CURSO DE C

Arquivos-Cabeçalhos

Arquivos-cabeçalhos são aqueles que temos mandado o compilador incluir no início de nossos exemplos e que sempre terminam em .h. Já vimos exemplos como stdio.h, conio.h, string.h. Eles, na verdade, não possuem os códigos completos das funções. Eles só contêm protótipos de funções. É o que basta. O compilador lê estes protótipos e, baseado nas informações lá contidas, gera o código correto. O corpo das funções cujos protótipos estão no arquivo-cabeçalho, no caso das funções do próprio C, já estão compiladas e normalmente são incluídas no programa no instante da "linkagem". Este é o instante em que todas as referências a funções cujos códigos não estão nos nossos arquivos fontes são resolvidas, buscando este código nos arquivos de bibliotecas.

 Se você programar algumas funções que queira aproveitar em vários programas futuros, ou módulos de programas, você pode escrever arquivos-cabeçalhos e incluí-los também.

Suponha que a função 'int EPar(int a)', do segundo exemplo da página c720.html seja importante em vários programas, e desejemos declará-la num módulo separado. No arquivo de cabeçalho chamado por exemplo de 'funcao.h' teremos a seguinte declaração:

int EPar(int a);

O código da função será escrito num arquivo a parte. Vamos chamá-lo de 'funcao.c'. Neste arquivo teremos a definição da função:

int EPar (int a)
{
if (a%2)                /* Verifica se a e divisivel por dois */
        return 0;
else
        return 1;
}

Por fim, no arquivo do programa principal teremos o programa principal. Vamos chamar este arquivo aqui de 'princip.c'.

#include 
#include "funcao.h"   
main ()
{
int num;
printf ("Entre com numero: ");
scanf ("%d",&num);
if (EPar(num))
        printf ("\n\nO numero e par.\n");
else
        printf ("\n\nO numero e impar.\n");
}

Este programa poderia ser compilado usando a seguinte linha de comando para o gcc:

gcc princip.c funcao.c -o saida

onde 'saida' seria o arquivo executável gerado.

 


Página Anterior  Índice da Aula  Próxima Página

Dúvidas? De uma olhadinha em nossoFAQ

Perguntas para a lista do Curso de C