Bibliotecas estáticas c/c++
Este é um tópico muito batido, tão velho quanto a linguagem C, mas que muita gente procura. Já que existem milhares de livros de c/c++ parecidos que podem fazer diferença para cada leitor, resolvi escrevi este artigo. Em resumo será mostrado como fazer um programa em c++ com funções e como fazê-lo da mesma forma com uma biblioteca.
Funções
Em primeiro lugar gostaria de deixar claro que estamos usando uma função (uma das formas de se usar funções) para exemplificar o uso de bibliotecas estáticas em c/cpp, mas poderíamos usar outras potencialidades desta linguagem (como o uso de classes, procedures, etc).
Uma função é parte de um programa, que faz sempre uma determinada tarefa, e que pode ser chamada a qualquer momento para executar esta tarefa.
Como exemplo abaixo se tem um programa com uma função que será chamada duas vezes. A tarefa desta função é somar dois números.
Na pasta home de seu Linux abra uma pasta chamada "programas". Dentro desta pasta, abra um arquivo texto, copie e cole este arquivo e salve o nome programa_com_function.cpp (pode ser outro nome, claro).
Uma função é parte de um programa, que faz sempre uma determinada tarefa, e que pode ser chamada a qualquer momento para executar esta tarefa.
Como exemplo abaixo se tem um programa com uma função que será chamada duas vezes. A tarefa desta função é somar dois números.
Na pasta home de seu Linux abra uma pasta chamada "programas". Dentro desta pasta, abra um arquivo texto, copie e cole este arquivo e salve o nome programa_com_function.cpp (pode ser outro nome, claro).
// Exemplo de programa com função
#include <iostream.h> //esta declaração vale pro programa todo.
int soma (int a, int b) //protótipo da função ("tem seu nome, e suas
//variáveis "a" e "b" do tipo inteiro)
{
int r; // r é uma variável que tem do tipo inteiro
r=a+b; // "r" recebe a soma de dois números "a" e "b"
// que serão fornecidos pelo programa principal.
return (r); // retorna ao programa principal o valor da variável "r"
} //acabou a função
// Aqui iniciamos o programa principal. Ele é que chama as funções
//quantas vezes pedirmos pra ele fazer isso
int main ()
{
int soma1;
int soma2;
int a;
int b;
cout << "\ndigite o primeiro valor\t";
cin >> a;
cout << "\ndigite o segundo valor\t";
cin >> b;
soma1 = soma (a,b); //chamou a função "soma" acima e a atribuiu à
// suas entradas os valores "a" e "b" digitados na tela e
// soma1 recebe o valor de "r"
cout << "\nO resultado da soma1 vale\t" << soma1;
cout << "\n\n\ndigite o primeiro valor\t";
cin >> a;
cout << "\ndigite o segundo valor\t";
cin >> b;
soma2 = soma (a,b); //chamou a função "soma" de novo e a atribuiu à
//suas entradas os valores "a" e "b" digitados na tela e
// soma2 recebe o valor de "r"
cout << "\nO resultado da soma2 vale\t" << soma2;
} // fim do programa
#include <iostream.h> //esta declaração vale pro programa todo.
int soma (int a, int b) //protótipo da função ("tem seu nome, e suas
//variáveis "a" e "b" do tipo inteiro)
{
int r; // r é uma variável que tem do tipo inteiro
r=a+b; // "r" recebe a soma de dois números "a" e "b"
// que serão fornecidos pelo programa principal.
return (r); // retorna ao programa principal o valor da variável "r"
} //acabou a função
// Aqui iniciamos o programa principal. Ele é que chama as funções
//quantas vezes pedirmos pra ele fazer isso
int main ()
{
int soma1;
int soma2;
int a;
int b;
cout << "\ndigite o primeiro valor\t";
cin >> a;
cout << "\ndigite o segundo valor\t";
cin >> b;
soma1 = soma (a,b); //chamou a função "soma" acima e a atribuiu à
// suas entradas os valores "a" e "b" digitados na tela e
// soma1 recebe o valor de "r"
cout << "\nO resultado da soma1 vale\t" << soma1;
cout << "\n\n\ndigite o primeiro valor\t";
cin >> a;
cout << "\ndigite o segundo valor\t";
cin >> b;
soma2 = soma (a,b); //chamou a função "soma" de novo e a atribuiu à
//suas entradas os valores "a" e "b" digitados na tela e
// soma2 recebe o valor de "r"
cout << "\nO resultado da soma2 vale\t" << soma2;
} // fim do programa
Considero que você já tenha o gcc instalado no Linux claro.
Entre no bash (linha de comando) e vá até a pasta onde está este arquivo texto (/home/programas) que você acabou de copiar, colar e salvar como "programa_com_função.cpp". Agora digite:
$ g++ programa_com_função.cpp -o meu_programa
Onde "-o meu_programa" avisa para que o programa executável de saída tenha o nome "meu_programa.exe".
Então digite:
$ ./meu_programa.exe
Agora digite os valores inteiros pedidos e vá dando enter. Você verá o resultado das somas dos números. Lembre-se que você chamou duas vezes a função soma no programa acima.
Esta é uma das várias formas de se fazer um programa com função!