Escolar Documentos
Profissional Documentos
Cultura Documentos
As funções são ferramentas úteis para qualquer programador, eles servem para resumir
partes de código que são repetidas rotineiramente no código fonte.
Exemplo:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main( )
{
int variavel = 0;
void minha_funcao ( )
{
system( "cls" );
printf( "%d", variavel );
getch( );
}
void main( )
{
int variavel = 0;
char RetornaCaracter( )
{
return 'c'; //RESPOSTA DEVE SER DO TIPO CHAR
}
A assinatura de uma função, simboliza toda a função exceto pela sua implementação ou
seja, das 3 expressões acima, temos as seguintes assinaturas respectivamente:
void RetornaNada ( );
int RetornaInteiro ( );
char RetoranCaracter ( );
Com as assinaturas temos uma breve idéia do que a função recebe de parâmetro e
retorna após sua execução.
void main ( )
{
int a, b;
a = 10;
RetornaNada ( a , 50 ); //imprime 60
RetornaNada ( 10, 5 ); //imprime 15
RetornaNada ( -10 , a );//imprime 0
RetornaNada ( a , a ); //imprime 20
}
Note que até o momento para todos os exemplos as funções foram colocadas antes da
função MAIN, isso se deve pelo simples fato de quando o compilador estiver
compilando o código ele já deve ter idéia de todas as funções que o MAIN chama, uma
forma de contornar isso é inserir a assinatura das funções antes do MAIN e deixar a
função contendo seu código fonte depois do MAIN, como segue o exemplo:
void main ( )
{
int a, b;
a = 10;
RetornaNada ( a , 50 ); //imprime 60
RetornaNada ( 10, 5 ); //imprime 15
RetornaNada ( -10 , a );//imprime 0
RetornaNada ( a , a ); //imprime 20
}
Exemplo:
//arquivo main.c
#include <stdio.h>
#include "my_lib.h"
void main ( )
{
RetornaNada( 1 , 2 );
}
//arquivo my_lib.h
#include <stdio.h>
//arquivo my_lib.c
#include “my_lib.h”
Com esse exemplo pode ser visualizado algumas particularidades, como por exemplo a
inclusão do arquivo “my_lib.h” pelo arquivo “my_lib.c”, isso se deve para que haja um
link (ligação) entre os arquivos da biblioteca, já o arquivo “um_lib.h” não tem essa
responsabilidade de linkar qualquer outro arquivo, porém ele fica responsável por
incluir qualquer biblioteca que ambos os arquivos, “my_lib.h” e “my_lib.c” possa vir a
utilizar, como por exemplo o arquivo “my_lib.c” faz uma chamada a função printf
declarada da biblioteca “stdio.h” por isso de sua inclusão no arquivo “my_lib.h”.
Outra particularidade é a presença das aspas duplas (“) ao invés dos sinais de maior e
menor (< , >), isso se deve pela localização dos arquivos “my_lib.h” e “my_lib.c”,
quando esses se encontram na mesma pasta do arquivo que o inclui, ele deve chama-lo
utilizando (“), caso o arquivo se encontre na mesma pasta do compilador, como é o caso
das bibliotecas ANSI, stdio.h , stdlib.h e outras não mantidas pelo padrão porém muito
utilizadas como a biblioteca conio.h devem ser incluídas utilizando (< e >). Isso serve
tão e somente para que o compilador possa encontrar os arquivos para a compilação.