⚡ Cap 08: Funções, Escopo, static & argc/argv
Especialização em Engenharia de Sistemas com Linguagem C (C17/C23)
🗺️ Slide 1: Protótipos & Assinatura de Funções
// 1. Protótipo (informa ao compilador antes da main)
double calcularMedia(double a, double b);
int main(void) {
double m = calcularMedia(7.0, 9.0);
return 0;
}
- Benefício: Evita declarações implícitas e permite organizar o código livremente.
📦 Slide 2: Passagem por Valor (Semântica de Cópia)
sequenceDiagram
participant Main as Frame: main()
participant Func as Frame: duplicar(x)
Main->>Func: Copia valor 10 para novo Stack Frame
Note over Func: x passa a valer 20 localmente
Func-->>Main: Retorna e Frame é destruído
Note over Main: x original continua valendo 10!
- Funções em C operam exclusivamente sobre cópias de argumentos na pilha.
🌐 Slide 3: O Modificador static e Escopo
- Variável Local Comum: Criada na Stack ao entrar na função, destruída ao sair.
- Variável Local
static:- Alocada na seção de dados
.data. - Inicializada apenas uma vez.
- Preserva seu valor entre sucessivas chamadas da função.
- Alocada na seção de dados
💻 Slide 4: Argumentos CLI: argc & argv
# Executando no terminal:
./servidor 127.0.0.1 8080
argc: Total de argumentos passados (ex:3).argv[0]: Nome do executável ("./servidor").argv[1]: Primeiro argumento ("127.0.0.1").argv[2]: Segundo argumento ("8080").atoi()/strtol(): Converte strings para inteiros.
📋 Resumo da Aula & Próximos Passos
- Revise os códigos de exemplo deste capítulo.
- Teste seus conhecimentos no Quiz Formativo.
- Pratique os exercícios em 4 níveis de complexidade.
🧭 Navegação Rápida
| 📖 Teoria | 📊 Slides | 🧠 Quiz | 💻 Exemplos | 🧩 Exercícios | | :— | :— | :— | :— | :— | | Ler Teoria | Ver Slides | Fazer Quiz | Ver Exemplos | Praticar Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim