Edição didática em português. O código e suas saídas preservam o original.
Funções em C
Organize programas com protótipos, parâmetros, valores de retorno e recursão.

Uma função encapsula uma operação. Sua declaração informa o tipo de retorno e os parâmetros; sua definição contém o corpo. Declare-a antes de usá-la e coloque declarações compartilhadas em um cabeçalho.
C passa os argumentos por valor. Para modificar um dado do chamador, receba um ponteiro válido e escreva no objeto apontado. Um parâmetro de array é ajustado para ponteiro: passe também o comprimento para preservar os limites.
Uma função recursiva precisa de um caso base e deve se aproximar dele a cada chamada. Cada chamada pode consumir espaço na pilha; uma solução iterativa pode ser preferível para entradas grandes.
Confira valores de retorno e separe entrada, cálculo e apresentação. Teste uma função com dados normais, limites e entradas inválidas antes de integrá-la em um programa maior.
Perguntas frequentes
Por que o código e a saída continuam em inglês?
Palavras-chave, identificadores e textos verificados pelos testes são preservados para não alterar o programa. As explicações e os controles estão traduzidos.