Definindo e chamando funções em C, com parâmetros e valores de retorno explicados visualmente.
int add(int a, int b) { return a + b; }return devolve um valorvoidf(x) = 2x + 1 do ensino fundamental ou médio?f(3) → substitua x por 3 → 7f(10) → substitua x por 10 → 21
// 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; }
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.| Termo matemático | Termo em C | Exemplo |
|---|---|---|
| nome da função | nome da função | f, add, sqrt |
| entrada / variável independente | argumento / parâmetro | x em f(x) |
| valor da função / variável dependente | valor de retorno | 7 em f(3) = 7 |
| definição | corpo da função | { return 2*x + 1; } |
| substituição | passagem de argumento | f(3) = "deixe x=3, então calcule" |
// 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
intaddg da matemáticaint a, int breturn a+b;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.
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.
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 timeTodas elas dependem de estado externo (a semente aleatória, o stdin ou o relógio do sistema).
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).
int get_year(void) { // void = no parameters return 2026; }Úteis para buscar dados externos ou retornar um valor fixo.
| Nome | Escopo | Valor |
|---|
max como minsum3(a, b, c)doubleConfira sua compreensão desta aula!
void?void significa "vazio" — a função não retorna nenhum valor, então a instrução return pode ser omitida.
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".
Variáveis declaradas dentro de uma função são "locais" — existem apenas dentro daquela função.