Você está na página 1de 10

Tel.

(11)3477-5176
(11) 3508-1923
treinamento@intellectuale.com.br

Pesquisar... Pesquisar

Home Nossa Escola Curso Presencial Contato

Funes em C
Curtir 14 Compartilhar Tweet 4 Compartilhar

Por: Eduardo Casavella

Definio de Funo

Uma funo nada mais do que uma subrotina usada em um programa.

Na linguagem C, denominamos funo a um conjunto de comandos que realiza uma tarefa


especfica em um mdulo dependente de cdigo.

A funo referenciada pelo programa principal atravs do nome atribudo a ela.

A utilizao de funes visa modularizar um programa, o que muito comum em programao


estruturada.

Desta forma podemos dividir um programa em vrias partes, no qual cada funo realiza uma
tarefa bem definida.

Esqueleto de uma funo


tipo_de_retorno nome_da_funo (listagem de parmetros)

{
instrues;
retorno_da_funo;
}

Parmetros de uma funo

Os parmetros so as variveis declaradas diretamente no cabealho da funo.

A finalidade dos parmetros fazer a comunicao entre as funes e a funo principal.


Chamamos de passagem de parmetros a passagem de valores entre as funes.

Exemplo de programa usando funo em C

1 #include<stdio.h>
2 #include<conio.h>
3 /*
4
5 Nome da funo: multiplica
6 recebe como parmetos dois valores inteiros (N1,N2)
7 objetivo: multiplicar os valores recebidos nos parmetros.
8 retorno: um parmetro inteiro (res) contendo o resultado
9 */
10 int multiplica(int N1, int N2) //multiplica recebe N1,N2 e retorna um int
11 {
12 int resultado;
13 resultado = N1 * N2;
14 return(resultado); //retornando o valor para main
15 }
16
17 /******************* funo principal (main) *********************/
18
19 int main(void)
20 {
21 int V1, V2, resultado;
22 printf("Digite o primeiro valor:");
23 scanf("%d", &V1);
24 printf("Digite o segundo valor:");
25
26 scanf("%d", &V2);
27
28 //chama a funo e recebe o retorno
29 resultado = multiplica(V1,V2);
30 printf("Resultado = %d\n", resultado);
31 getch();
32 return 0;
}

TELA DE EXECUO

Tela de execuo do programa usando funo em C

Explicao do cdigo do programa:

Observe que o corpo da funo multiplica foi declarado e a implementao do cdigo foi feita
antes da funo main.

Na funo main os valores de V1 e V2 foram recebidos.

Foi feita a chamada da funo multiplica e a passagem de parmetros.

O valor retornado pela funo foi armazenado em resultado.

O valor armazenado em resultado foi apresentado.


Prottipo de funo em C
O prottipo de uma funo basicamente, uma declarao da interface da funo, ou seja, deve
especificar:

Tipo da funo;
Nome da funo;
Lista de parmetros que a funo necessita;

Exemplo:
int multiplica(int N1, int N2)
Programa em C reescrito usando prottipo

1 #include<stdio.h>
2 #include<conio.h>
3 /* Prottipo da funo */
4 int multiplica(int N1, int N2);
5
6 int main(void)
7 {
8 int V1, V2, resultado;
9 printf("Digite o primeiro valor:");
10 scanf("%d", &V1);
11 printf("Digite o segundo valor:");
12 scanf("%d", &V2);
13
14 //chama a funo e recebe o retorno
15 resultado = multiplica(V1,V2);
16 printf("Resultado = %d\n", resultado);
17
18 getch();
19 return 0;
20 }
21
22 int multiplica(int N1, int N2) //multiplica recebe N1,N2 e retorna um int
23 {
24 int resultado;
25 resultado = N1 * N2;
26 return(resultado); //retornando o valor para main
}

TELA DE EXECUO

Tela de execuo do programa em C reescrito usando prottipo

Funo sem retorno

Em C, possvel criar funes que no retornam nenhum valor.

Normalmente, isto feito quando queremos executar um bloco de comandos, mas estes
comandos no precisam retornar nada.

Neste caso, devemos usar void no tipo de retorno do cabealho da funo.

Se a funo no recebe nenhum parmetro, tambm colocamos void no local da listagem dos
parmetros.
exemplo:

void imprime_cabec(void)
{
printf("******************************\n");
printf("* LINGUAGEM C *\n");
printf("******************************\n");

return; /* retorno de uma funo void */


}

Para funes do tipo void, (ou seja sem retorno) devemos usar o comando return;

Note bem que este return no contm nenhum parmetro.

J que no preciso retornar nenhum parmetro e se eu no escrever o comando return?

Se a instruo return for omitida, alguns compiladores vo gerar mensagens de advertncia


(warning), pois o padro ANSI C recomenda a utilizao da instruo.
Exemplo de programa usando funes com e sem retorno.
1 #include<stdio.h>
2 #include<conio.h>
3
4 /******* rea dos prottipos ******/
5 void imprime_cabec(void);
6 int multiplica(int N1, int N2);
7 /******* fim dos prottipos *******/
8
9 /* ******* FUNO PRINCIPAL *******/
10 int main(void)
11 {
12 int V1=0, V2=0, resultado=0;
13 //Chamada da funo imprime_cabec
14 imprime_cabec();
15
16 printf("Digite o primeiro valor:");
17 scanf("%d", &V1);
18 printf("Digite o segundo valor:");
19
scanf("%d", &V2);
20
21
//chama a funo e recebe o retorno
22
resultado = multiplica(V1,V2);
23
printf("Resultado = %d\n", resultado);
24
25
26 getch();
27 return 0;
28 }
29 /* ******** FIM DA FUNO PRINCIPAL *******/
30
31 /* --------- Corpo das funes --------- */
32 /*
33 ***** Funo imprime_cabec *****
34 Parmetros de entrada: no tem (void)
35 Objetivo: imprimir cabealho na tela
36 Tipo de retorno: no tem (void)
37 */
38 void imprime_cabec(void)
39 {
40 printf("******************************\n");
41 printf("* LINGUAGEM C *\n");
42 printf("******************************\n\n");
43
44 return;/* retorno de uma funo void */
45 }
46
47 /*
48 ***** Funo multiplica *****
49 Parmetros de entrada: N1, N2 ambos int
50 Objetivo: multiplicar valores
51 Tipo de retorno: int (resultado);
52 */
53 //multiplica recebe N1,N2 e retorna um int
54 int multiplica(int N1, int N2)
55 {
56 int resultado;
57 resultado = N1 * N2;
58
59 //retornando o valor para main
60 return(resultado);
}

TELA DE EXECUO
Tela de execuo do programa usando funes com e sem retorno

Neste programa utilizamos duas funes, uma delas com retorno de valor multiplica() e outra
delas sem retorno imprime_cabec().

Primeiramente, declaramos todos os prottipos das funes antes da main.

Na funo main() so feitas as chamadas para as outras funes.

Aps a finalizao do cdigo da main(), so implementados os corpos das outras funes.

Quando a funo main() chama (invoca) outra funo, o programa salta para o trecho de cdigo
da funo que foi chamada, executa esta funo e depois retorna novamente para a funo
principal main().

At a prxima!

Tweet 4 Compartilhar

8 respostas a Funes em C

8 de maio
de 2015 s
Leonardo 4:17
Muito
disse: bom..
Responder

Cristina disse: 21 de agosto de 2015 s 21:57

Excelente explicao! Melhor que muito livro tecnico! Parabns e muito obrigada!

Responder
21 de 1 de
dezembro de agosto
francisco 2015 s 0:25 lucas de 2016
valeu. me ajudou muito
pedro disse: Muito
disse: bom!
s 23:18

Responder Responder

Julio 31 de agosto
de 2016 s
Cesar disse: 1:48
Valeu, foi de grande ajuda !!!

Responder

EDIVAN PEREIRA DE 21 de outubro de 2016 s 23:07

SOUZA disse:
Nota 10 pra voc muito bom valeu um Abrao fica com Deus

Responder

1 de
dezembro
maria de 2016
muito
disse: bom s
parabens
19:56

Responder

tecnico disse: 15 de fevereiro de 2017 s 23:42

meu professor faz tanta firula pra ensinar algo simples como funo

Responder

Deixe uma resposta


O seu endereo de e-mail no ser publicado.

Comentrio
Name *

Email *

Website

Publicar comentrio

Intellectuale C
2.6K likes

Like Page

Be the first of your friends to like


this

Tpicos recentes
Instalando o Code-Blocks para Linguagem C no Ubuntu

Instalando o Eclipse CDT para C/C++ no Windows 8.1


Instalando o Netbeans para C/C++:

Obrigado!

Acentuao de caracteres em C com locale.h

Categorias
Basico para Iniciantes 1

Bibliotecas

Constantes

Curso de C Online

Desvio Incondicional

Enum

Estruturas de deciso

Estruturas de repetio

Funes

Histrico

IDEs e Compiladores C

Loop infinito

Operadores

Palavras Reservadas

Ponteiros

Programando em C

Sem categoria

Strings

Structs

Usando arquivos
Variaveis

Vetores

abril 2017
S T QQS S D
1 2
3 4 5 6 7 8 9
10111213141516
17181920212223
24252627282930
maio
Av. Paulista, 2.202 Cj. 31, So Paulo , SP , 04304-010 Brasil

Tel. (11) 3477-5176


3508-1923

Siga-nos!

Siga-nos pelo Twitter, Facebook ou Blog e fique ligado(a) nas diversas dicas de programao e
gesto de projetos. Participe, comente, compartilhe!

Lista de Links
Blog Intellectuale
Curso de C online
Cursos de Programao

Pesquisar... Pesquisar

Escola de Programao Intellectuale Tecnologia e Treinamento Ltda. Todos os direitos


reservados Oibe Assessoria de Comunicao

Você também pode gostar