Publicidade

Aula 24: Funções (Básico)

Definindo e chamando funções em C, com parâmetros e valores de retorno explicados visualmente.

📖 O que aprender nesta página
✅ Essencial que você precisa saber
  • int add(int a, int b) { return a + b; }
  • Declare um protótipo antes de usar
  • return devolve um valor
⭐ Leia se tiver tempo
  • Retorno e parâmetros void
  • Argumentos são passados por valor
  • Escopo de variáveis locais

Função — agrupe código e dê um nome a ele

Uma função é um bloco de código nomeado que recebe entradas, faz algum trabalho e retorna um resultado. Ela se comporta muito parecido com as funções que você aprendeu na aula de matemática.

📐 Analogia: funções na matemática

Lembra de f(x) = 2x + 1 do ensino fundamental ou médio?
f(x) = 2x + 1
f(3) → substitua x por 3 → 7
f(10) → substitua x por 10 → 21
As funções em C funcionam da mesma forma: você chama o nome e recebe um resultado calculado.

✨ f(x) = 2x + 1 em C

// Math: f(x) = 2x + 1
int f(int x) {
    return 2 * x + 1;
}

int main(void) {
    printf("%d\n", f(3));    // -> 7
    printf("%d\n", f(10));   // -> 21
    return 0;
}
Correspondência: o f(x) da matemática é uma função, e o int f(int x) em C também é. A sintaxe da chamada (f(3)) e o significado ("coloque 3 no lugar de x") são idênticos.

🔗 Mapeamento de termos

Termo matemáticoTermo em CExemplo
nome da funçãonome da funçãof, add, sqrt
entrada / variável independenteargumento / parâmetrox em f(x)
valor da função /
variável dependente
valor de retorno7 em f(3) = 7
definiçãocorpo da função{ return 2*x + 1; }
substituiçãopassagem de argumentof(3) = "deixe x=3, então calcule"

🤝 Funções de duas variáveis também

// Math: g(x, y) = x + y
int add(int a, int b) {
    return a + b;
}
// add(3, 5) is just g(3, 5) — returns 8
Tipo de retorno
int
tipo do contradomínio
Nome da função
add
como o g da matemática
Parâmetros
int a, int b
variáveis independentes
Instrução return
return a+b;
o valor da função

⚠️ Onde as funções em C diferem das funções matemáticas

A analogia ajuda, mas não é perfeita. Essas diferenças são o que fazem as funções em C serem mais do que apenas matemática.
① Argumentos e valores de retorno têm tipos
Na matemática, f(x) = 2x + 1 funciona se x for inteiro ou real. Em C, você declara o tipo de toda entrada e saída.
int f(int x) significa "recebe um int e retorna um int". Para valores decimais, você escreveria double f(double x) como uma função separada.
② Funções podem ter efeitos colaterais — algumas não retornam nada
Uma função matemática simplesmente mapeia entrada para saída. Uma função em C também pode imprimir na tela, modificar arquivos ou alterar variáveis — esses são os chamados efeitos colaterais.
void hello(void) {        // no return (void)
    printf("Hello!\n");   // side effect: output to screen
}
void significa "esta função não retorna nenhum valor" — um conceito sem equivalente direto na matemática.
③ A mesma entrada pode gerar saídas diferentes
Na matemática, f(3) é sempre 7. Uma função em C, porém, pode retornar um valor diferente cada vez que é chamada:
int r = rand();        // random number (different each call)
int n = getchar();     // user keyboard input
time_t t = time(NULL); // current clock time
Todas elas dependem de estado externo (a semente aleatória, o stdin ou o relógio do sistema).
④ Argumentos são copiados (passagem por valor)
Na matemática, você simplesmente "passa x". Em C, apenas o valor é copiado para dentro da função, então alterar o parâmetro dentro da função não afeta a variável de quem chamou.
void change(int x) { x = 100; }  // sets local x to 100
int main(void) {
    int a = 5;
    change(a);
    printf("%d\n", a); // -> 5 (unchanged!)
}
Para realmente modificar a variável do chamador, você precisa de ponteiros (vistos em uma aula posterior).
⑤ Funções podem não ter argumentos
A matemática raramente usa funções sem argumentos, mas elas são comuns em C.
int get_year(void) {   // void = no parameters
    return 2026;
}
Úteis para buscar dados externos ou retornar um valor fixo.
🎯 Ponto-chave: A ideia de "entrada → trabalho → saída" é compartilhada com a matemática. C adiciona tipos, efeitos colaterais e passagem por valor porque roda em uma máquina real, não na matemática pura.

Execução passo a passo — chamada de função

function_demo.c

Pilha de chamadas

Estado das variáveis

NomeEscopoValor

Saída padrão

 

Experimente você mesmo — funções

my_func.c
Saída
Clique em "Executar" para rodar...
💡 Tente também estas ideias
Publicidade

Aulas relacionadas

Funções
Aula 25: Funções (Avançado)
Um olhar mais profundo sobre funções em C: passagem por valor, pilha de chamadas e recursão.
Funções
Aula 28: Protótipo e Macro
Aprenda sobre protótipos de função em C e a macro #define.
Primeiros passos
Aula 3: Variáveis
O que são variáveis em C? Aprenda int, double e char com diagramas visuais.
← Aula anterior
Aula 23: Quiz (Strings)
Próxima aula →
Aula 25: Funções (Avançado)

Quiz de Revisão

Confira sua compreensão desta aula!

Q1. O que significa um tipo de retorno void?

Retorna um inteiro
Não retorna nada
Erro

void significa "vazio" — a função não retorna nenhum valor, então a instrução return pode ser omitida.

Q2. Como se chamam as variáveis declaradas no cabeçalho de uma função?

Variáveis globais
Parâmetros (argumentos formais)
Constantes

As variáveis declaradas na definição da função são chamadas de "parâmetros". Os valores passados no ponto da chamada são chamados de "argumentos".

Q3. Qual é o escopo de uma variável declarada dentro de uma função?

O programa inteiro
Somente dentro daquela função
O arquivo inteiro

Variáveis declaradas dentro de uma função são "locais" — existem apenas dentro daquela função.

Compartilhe este artigo
Compartilhar no X (Twitter) Compartilhar no Facebook