Buscar

Prototipagem de Funções em C/C++

Prévia do material em texto

www.tiexpert.net Pág. 1 de 2 
Protótipos de funções
A prototipagem é uma técnica muito utilizada em programas criados em C/C++.
Como já vimos, tudo em C/C++ é uma função e a função executada quando criamos um 
programa é o MAIN. O problema é quando temos muitas funções. Como toda função deve ser 
compilada primeiro que o MAIN para que esta possa ser utilizada, muitas vezes acabamos 
escrevendo inúmeras linhas de código nas, prováveis, 20 ou 30 funções e esquecemos a 
função principal do programa. Isso acaba gerando uma certa dificuldade de navegação pelo 
código - quando acontece isso dizemos que o código está poluído.
Então, do que se trata, realmente, a prototipagem de funções!?
Quando criamos um protótipo de uma função, estamos, na verdade, declarando uma função. 
Ou seja, você indica para o MAIN que tal função existe, mas o código dela está em outro lugar. 
Dessa forma o programa fica muito mais fácil de ler e facilmente chegamos até a função MAIN 
(que é o que realmente nos interessa).
Para criar um protótipo de uma função é a mesma coisa de criar uma função. A direfença é 
que, ao invés, de abrirmos um bloco de código ( { } ), terminamos a linha com ponto-e-
vírgula (;). E o código da função que deveríamos ter colocado no começo é colocado após a 
função MAIN.
Ele ficaria assim:
PROTÓTIPO DA FUNÇÃO 1;
MAIN () { bloco de dados }
FUNÇÃO 1 { bloco de dados }
Pronto! Basicamente, só trocamos a função de lugar. Vamos ver isso em um exemplo:
#include <iostream>
#include <cstdlib>
using namespace std;
//criando o protótipo de 4 funções
int somar (int x, int y);
int subtrair (int x, int y);
int multiplicar (int x, int y);
int dividir (int x, int y);
//a função principal
int main (void){
 int valor1, valor2, resSom, resSub, resMult, resDiv;
 cout <<"Digite o 1o valor: ";
 cin >> valor1;
 cin.ignore();
 cout <<"Digite o 2o valor: ";
 cin >> valor2;
 cin.ignore ();
 //chamando todas as funções
 resSom=somar (valor1, valor2);
 resSub=subtrair (valor1, valor2);
 resMult=multiplicar (valor1, valor2);
 resDiv=dividir (valor1, valor2);
http://www.tiexpert.net/programacao/c/prototipos.php
www.tiexpert.net Pág. 2 de 2 
 //mostrando os resultados guardados
 system ("cls");
 cout <<valor1<<" + "<<valor2<<" = "<<resSom<<"\n";
 cout <<valor1<<" - "<<valor2<<" = "<<resSub<<"\n";
 cout <<valor1<<" * "<<valor2<<" = "<<resMult<<"\n";
 cout <<valor1<<" / "<<valor2<<" = "<<resDiv<<"\n\n";
 system ("pause");
 return EXIT_SUCCESS;
}
//As funções
int somar (int x, int y){
 return x+y;
}
int subtrair (int x, int y){
 return x-y;
}
int multiplicar (int x, int y){
 return x*y;
}
int dividir (int x, int y){
 return x/y;
}
Veja como o código está simples. Temos uma parte destinada a declarar as funções 
(protótipos) e logo após temos a função principal que é o programa. Logo abaixo da função 
principal estão as funções secundárias.
Isso é prototipagem de funções.
Autor: Denys William Xavier
Este artigo está sob Licença Creative Commons
Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/
ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
http://www.tiexpert.net/programacao/c/prototipos.php

Outros materiais

Perguntas Recentes