Este documento resume as principais características e conceitos sobre funções em C, incluindo: 1) definição de função; 2) sintaxe básica com nome, parênteses e corpo; 3) protótipo e seu uso; 4) funções que retornam e não retornam valores; 5) passagem de parâmetros; 6) escopo de variáveis locais, globais e formais; 7) recursividade.
2. Sumário
05/07/2023
Professor Paulo Nunes 2
Definição
Sintaxe
Protótipo
Funções que retornam
valor
Função sem retorno de
valor
Passando valores para a
função
Passando variáveis como
argumentos
Escopo das variáveis
Local
Global
Por parâmetros
Recursão
3. Unidade de código de programa autônoma desenhada para
cumprir uma tarefa particular. (Mizrahi, Victorine Viviane. 1990)
Utilizamos uma função para agilizar a escrita e execução de
programas, fazendo com que o programador não tenha que
reescrever código já existente.
Podemos dividir um programa maior em partes menores,
ficando assim mais fácil de mantê-lo.
Definição
05/07/2023
Professor Paulo Nunes 3
4. Todas as funções possuem um nome seguido de parênteses “()”;
nome_da_função(<argumentos>)
Nos parênteses podem ou não conter uma lista de parâmetros;
O corpo da função pode conter outros comandos/funções de C,
variáveis e expressões, envolvidas entre chaves “{ }”;
As funções podem vir antes ou após a função principal main();
Na declaração, as funções não finalizam com ponto-e-vírgula, apenas
na chamada da função;
As funções main(), getche() e printf() são exemplos de funções de
biblioteca C.
05/07/2023
Professor Paulo Nunes 4
Sintaxe de uma função
5. Informa como a função será criada e utilizada.
É prática saudável, opcional, criar os protótipos de funções
antes da função propriamente dita.
05/07/2023
Professor Paulo Nunes 5
Protótipo de função
Protótipo da função
Diz o tipo de dado de retorno da
função, no caso “float”.
O número de parâmetros recebidos,
no caso dois.
O tipo de dado dos parâmetros, no
caso ambos são “int”.
A ordem da passagem dos
parâmetros.
6. Nem sempre funções recebem parâmetros, ou retornam
valores. Nesses casos são definidas como “void”, vazias.
Não existe limite para o número de funções que podem ser
incluídas em um programa C.
05/07/2023
Professor Paulo Nunes 6
Protótipo de função
8. O programa anterior utiliza uma função que lê um caractere
do teclado e o converte em minúsculo, caso seja maiúsculo;
Nele utilizamos o comando return. O comando return tem
dois usos importantes:
Primeiro: devolver um valor e retornar imediatamente para a
próxima instrução do código chamada;
Segundo: usá-lo sem os parênteses para causar uma saída
imediata da função na qual ele se encontra.
05/07/2023
Professor Paulo Nunes 8
Funções que retornam valor
12. 05/07/2023
Professor Paulo Nunes 12
Passando valores para a função
Chamada passando valores
Informa ao compilador que abs()
requer um argumento, e que esse
argumento será do tipo inteiro
Aqui, a variável “x” é uma nova variável, chamada de
“parêmetro formal”, e funciona como uma variável
local da função, sendo criada quando a função inicia a
execução e destruída no retorno da função.
15. Quando necessário, podem ser passados vários argumentos
em uma função;
Os argumentos devem ser separados por vírgulas;
Não existem limites para o número de argumentos passados.
05/07/2023
Professor Paulo Nunes 15
Passagem de valores: detalhes
17. Identifica e determina o tempo de vida de qualquer variável.
É uma região do programa onde uma variável definida pode
ter a sua existência, além dessa região a variável não pode
ser acessada.
Onde uma variável pode ser declarada em C:
Dentro de uma função ou bloco, denominadas locais;
Fora de qualquer função, denominadas globais;
Na definição de parâmetros de função, chamadas de
parâmetros formais.
05/07/2023
Professor Paulo Nunes 17
Escopo das variáveis
18. 05/07/2023
Professor Paulo Nunes 18
Escopo local
Essas variáveis são acessadas
apenas pela função main()
Seus dados são perdidos
após a execução de main()
20. 05/07/2023
Professor Paulo Nunes 20
Escopo global
Variável declarada fora de
qualquer função.
A variável pode ser acessada
por todas as outras funções.
24. Posso atribuir dados para a variável global em uma função e
referenciar o mesmo espaço de memória em outra função.
O uso de variáveis globais é desaconselhado, pois podem
provocar erros de segurança.
Usar variáveis globais permite que todas as funções em um
arquivo de programa possa ter acesso aos mesmos dados, o
que vai contra o conceito de ocultação de informações.
05/07/2023
Professor Paulo Nunes 24
Escopo global Vs. Local
25. A função é recursiva quando realiza uma chamada a ela
mesma;
Utiliza mais memória, o que a torna mais lenta;
Não são difíceis de se criar, mas de encontrar onde utilizá-las!
O melhor exemplo de recursividade é para resolução de
fatorial de um número, pois a própria definição de fatorial
sugere recursão:
fatorial(n) = n * fatorial(n – 1)
05/07/2023
Professor Paulo Nunes 25
Funções Recursivas
29. SOUSA, A. J. de. Linguagem C Descomplicada: Desvendando as Funções em C. São Paulo: Novatec
Editora, 2019.
DIAS, F. L. Linguagem C: Programação em C - Algoritmos e Estrutura de Dados. Rio de Janeiro: LTC
Editora, 2021.
CELES, W.; CERQUEIRA, R.; RANGEL, J. Lógica de Programação: Crie seus primeiros programas
usando funções em C. São Paulo: Editora Novatec, 2017.
PRATA, S. C Primer Plus. 6th ed. New York: Addison-Wesley Professional, 2013.
KERNIGHAN, B. W.; RITCHIE, D. M. The C Programming Language. 2nd ed. New Jersey: Prentice Hall,
1988.
KING, K. N. C Programming: A Modern Approach. 2nd ed. New York: W. W. Norton & Company,
2008.
05/07/2023
Professor Paulo Nunes 29
Bibliografia