Todos os programas em linguagem C usam
funções das
bibliotecas padrão da linguagem.
O conjunto de funções de cada biblioteca é descrito em um
arquivo-interface
(= header file),
que tem o mesmo nome da biblioteca e sufixo .h
.
(Essa interface também é conhecida como
API, ou application programming interface.)
Veja algumas amostras enfeitadas de interfaces das principais bibliotecas padrão C:
Para ter acesso a uma biblioteca, seu programa deve incluir uma cópia do correspondente arquivo-interface. Por exemplo, basta escrever
#include <stdlib.h>
para que o pré-processador da linguagem C acrescente uma cópia de stdlib.h ao seu programa. (No sistema Linux, os arquivos-interface ficam, em geral, no diretório /usr/include/; mas você não precisa saber disso.)
A documentação
das funções de uma biblioteca
deveria, idealmente, estar no arquivo-interface.
Na prática, porém,
a documentação é mantida à parte.
Para consultar a documentação
no sistema Linux,
digite
man nome_da_função
no terminal
ou consulte o
Function and Macro Index
da GNU C Library.
A documentação também pode ser vista
no verbete
C standard library
da Wikipedia
e na página
C Standard Library header files
de cppreference.com.
Veja o seguinte arquivo-interface para uma biblioteca imaginária bib:
// Este arquivo: bib.h // Breve descrição da biblioteca: ... ///////////////////////////////////// #ifndef _BIB_H #define _BIB_H // Inclusão de outras interfaces // necessárias para entender esta // interface. #include <aaaa.h> #include <bbbb.h> // Definições das macros que // a biblioteca bib usa. #define XXX 1000 // Protótipos das funções da // biblioteca. ///////////////////////////////////// // A função xxx recebe ... e // devolve ... tal que ... // int xxxx (int a, char c, int v[]); // A função yyyy recebe ... e // devolve ... tal que ... // void yyyy (double a, int b); #endif
O arquivo bib.h deve ser incluído em todos os arquivos-fonte que usam a biblioteca bib, bem como na implementação bib.c da biblioteca.
[Esta seção foi adaptada das páginas 275 e 286 do Art and Science of C de Eric Roberts.]