Conteúdo do Curso
Fundamentos de C
Fundamentos de C
Void, Recursão
O Tipo de Retorno void em C
Na linguagem de programação C, funções declaradas com um tipo de retorno específico devem ter uma instrução de retorno, entregando um valor correspondente a esse tipo. No entanto, há cenários em que uma função não precisa retornar nada – talvez esteja simplesmente exibindo texto na tela. Para tais casos, a função deve ser declarada com o tipo void
.
Main
#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
A palavra-chave void
especifica que uma função não retorna um valor, e também pode ser usada no contexto de ponteiros. Tentar declarar uma variável do tipo void
resultará em um erro porque o compilador não entenderá quanto de memória alocar.
Aqui está um erro intencional para ilustração.
Main
#include <stdio.h> int main() { void variable; return 0; }
Explorando a Recursão
C suporta a capacidade de uma função chamar a si mesma, uma técnica conhecida como recursão.
Imagine a recursão como a ação de esticar e depois soltar um elástico. É comumente utilizada em operações matemáticas, como o cálculo de fatoriais.
Por exemplo: 3! = 3 x 2 x 1
Fatoriais são frequentemente utilizados na aproximação de valores de funções ao expandir essas funções em séries de Taylor ou Maclaurin.
Nota
A inspiração para este capítulo surgiu logo após o autor concluir uma tarefa de laboratório na universidade. A tarefa era aproximar o valor da cotangente a uma certa precisão expandindo-a em uma série de Taylor. E naturalmente, o cálculo do fatorial foi indispensável.
Main
#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
No contexto da recursão, a função continuará a chamar a si mesma até que atenda à condição n == 0 || n == 1
. Uma vez que essa condição é satisfeita, os resultados das chamadas subsequentes da função factorial()
são retornados na ordem inversa, semelhante a dobrar um acordeão. Quando o passo 6 é alcançado, a chamada inicial para factorial(3)
retornará 6
.
Obrigado pelo seu feedback!