Vamos aprender a criar e usar uma biblioteca, um header, que são aqueles arquivos de extensão .h que usualmente colocamos após o #include.
- Baixe este conteúdo: Apostila C Progressivo
- Clique aqui e saiba como obter seu certificado de programação C!
Por que criar uma biblioteca / header (.h) em C?
#include <stdio.h>
É como se tivesse colocando os códigos que se encontram dentro de um arquivo chamado 'stdio.h' no seu programa. Mas você não vê esses códigos, é o C/compilador que fazem isso tudo pra você.
Agora imagine se esses códigos aparecessem para você...sabe o que você veria?
Centenas de linhas de código para mostrar um simples 'Hello World' ou outros programas simples, que vínhamos criando até agora.
A utilidade dessas bibliotecas e headers é a de criar um arquivo que contém diversas funções específicas, separadas e organizadas por assuntos.
Por exemplo, existe uma biblioteca chamada string.h (que iremos estudar em breve), que é armazena diversas linhas de códigos com funções prontas para manipularmos strings em C.
Como criar uma biblioteca / header (.h) em C
Vá no Code::Blocks -> Empty FileSalve esse arquivo como: mystring.h
Salve na mesma pasta em que guarda seu código-fonte de C.
Escreva uma simples função nela, como uma que mostre uma mensagem na tela, com um simples printf e salve o arquivo.
Agora volte no seu projeto, que tem extensão .c
Após o #include <stdio.h>
Coloque:
#include "mystring.h"
Pronto. É como se todo o código contigo no arquivo mystring.h estivesse nesse seu arquivo de extensão .c
Faça um teste, invoque a função que criou no header a partir do seu arquivo .c
Note que só podemos usar o nome do header entre aspas se ele estiver na mesma pasta que seu código-fonte .c
Se estiver em outra como em: C:\C_Progressivo\, faça:
#include "C:\C_Progressivo\mystring.h"
Vamos criar uma série de funções de manipulação de caracteres e strings nos próximos tutoriais de nosso curso, e armazenaremos todos nossos códigos em bibliotecas!
9 comentários:
A excelente didática e a perfeita organização dos tópicos desta apostila me deixaram perplexo... Parabéns pelo material! Está sendo deveras útil para a aprendizagem desta tão complexa linguagem computacional.
Simplesmente fantástico, simples e direto.
Como você diz que string.h é uma biblioteca?
Ele é um header, o que é diferente de uma library.
Muito bom essa apostila quando com comecei a ler não sabia nada de c agora já sou capais de criar meus próprios programas em c básicos mais já estou evoluíndo muito.
Num ambiente Linux, dá para ver todos os headers e bibliotecas, pois estão na pasta /usr/include. Se esquecer o nome da pasta, basta criar um arquivo .c aleatório, dar um #include e vai ter o /usr/include
Guardar código-fonte em .h? Tem certeza que você sabe o que está fazendo? E a nomenclatura? E a compilação? E a guarda de cabeçalho? E a inclusão no link-editor? Este artigo está deixando muito a desejar. Aprenda a fazer corretamente:
https://jacknpoeexplicacpp.wordpress.com/2015/07/25/criando-bibliotecas-em-c-parte-1-arquivo-de-cabecalho-2/
Na verdade, o arquivo header é onde é colocado todos os cabeçalhos das funções. Em seguida deve-se criar outro arquivo .c com o mesmo nome do header, este porem, terá apenas o corpo das funções declaradas no header. Em seguida, deve-se criar um programa-objeto do arquivo onde está o corpo das funções, ai sim, no seu programa principal, quando usar o #include "nomedoheader.h" ele reconhecerá as funções.
Desse jeito funciona sim, eu fiz e deu muito certo, funcionou perfeitamente.
Adorei o Artigo! Me ajudou muito!
Era exatamente o que eu estava procurando e exatamente o que eu desejava fazer! Ter algumas funções separadas em arquivos da forma que eu desejar. Eu não fazia idéia de que o C reconheceria comandos em outro arquivo com tanta simplicidade, isso me permite remover do meu source principal as funções e textos que não me interessam no momento e que me atrapalham visualmente!
E não queria fazer da forma tradicional com 2 arquivos .c e .h para minhas funções porque considero desnecessário, extremamente chato e desorganizado tudo espalhado!
Logo outros comentários aqui dizendo que o artigo é errado ou coisa do tipo é completamente absurdo! Cada pessoa faz do jeito que acha melhor! Posso compreender o uso de um Header tradicional, mas para mim acho desnecessário e burocrático demais, espalhando código em inúmeros arquivos sem necessidade!
Parabéns Pelo Artigo, pois a mim, me ajudou e Bastante!
Postar um comentário