C:
Organizando código em funções

Como fazer:

Em C, uma função é declarada com um tipo de retorno, um nome e parâmetros (se houver), seguidos por um bloco de código. Vamos começar com um exemplo simples: uma função que soma dois inteiros.

#include <stdio.h>

// Declaração da função
int somar(int a, int b);

int main() {
  int soma = somar(5, 3);
  printf("A soma é: %d\n", soma);
  return 0;
}

// Definição da função
int somar(int a, int b) {
  return a + b;
}

Saída:

A soma é: 8

Agora, vamos ver um exemplo mais complexo que envolve um tipo de dado customizado. Esta função calcula a área de um retângulo.

#include <stdio.h>

// Define uma estrutura para um retângulo
typedef struct {
  int largura;
  int altura;
} Retangulo;

// Função para calcular a área de um retângulo
int calcularArea(Retangulo ret) {
  return ret.largura * ret.altura;
}

int main() {
  Retangulo meuRet = {5, 10};
  int area = calcularArea(meuRet);
  printf("A área do retângulo é: %d\n", area);
  return 0;
}

Saída:

A área do retângulo é: 50

Aprofundamento

O conceito de funções em C, herdado de práticas de programação anteriores, é fundamental para a programação estruturada. Funções permitem que os desenvolvedores abstraiam detalhes, gerenciem complexidades e organizem seus códigos logicamente. Desde sua concepção, a função tem sido uma construção central em C, influenciando numerosas outras linguagens.

No entanto, à medida que os paradigmas de programação evoluíram, abordagens alternativas como a programação orientada a objetos (OOP) em linguagens como C++ e Java, estenderam o conceito de funções com métodos associados a objetos. Embora C não suporte OOP nativamente, é possível imitar designs orientados a objetos estruturando cuidadosamente funções e dados.

Na programação moderna, as funções permanecem cruciais, mas com os avanços nas otimizações de compiladores e recursos de linguagem, o foco pode mudar para funções inline e templates em C++ ou lambdas em linguagens como Python e JavaScript. Esses fornecem mais flexibilidade e frequentemente uma sintaxe mais concisa para alcançar uma modularidade e reutilização semelhantes. No entanto, os princípios fundamentais aprendidos ao organizar código em funções em C são universalmente aplicáveis e formam a base do desenvolvimento de software eficiente e eficaz.