O que é C, e por que aprender?
De onde veio o C, onde ele roda hoje e como um programa em C vai de texto a algo que o seu computador consegue executar.
- Explicar o que é C e citar lugares onde ele é usado hoje
- Descrever a etapa de compilação: entra código-fonte, sai um executável
- Diferenciar uma linguagem compilada de uma interpretada
C é uma linguagem de programação pequena, rápida e de uso geral. Ela dá a você uma camada fina e previsível sobre o que o hardware realmente faz: a memória é uma longa fileira de bytes numerados, e o seu programa os lê e escreve. Essa proximidade com a máquina é justamente o motivo de o C ainda estar em todo lugar, cinquenta anos depois de criado.
De onde veio o C
Desde então, o C foi padronizado várias vezes. Você vai ver estes nomes: C89/C90 (o primeiro padrão), C99 (acrescentou os comentários //, bool e a declaração de variáveis em qualquer lugar), C11, C17 (correções de bugs) e C23 (o mais novo). Esta trilha usa o C17 moderno, que todo compilador atual suporta.
Onde o C roda hoje
Você usa software escrito em C todos os dias, normalmente sem perceber:
- Sistemas operacionais: o kernel do Linux e a maior parte das camadas de baixo nível do Windows e do macOS.
- Dispositivos embarcados: micro-ondas, carros, roteadores, marca-passos, qualquer coisa com um microcontrolador.
- Runtimes de linguagens: o principal interpretador de Python (CPython), Ruby, PHP e Lua são escritos em C.
- Bancos de dados e servidores: SQLite, PostgreSQL, Redis, nginx.
- Jogos e gráficos: engines e drivers em que cada milissegundo conta.
Para exemplos concretos, a documentação do kernel do Linux mostra o C usado em trabalho de sistema operacional, e o SQLite explica por que o motor do banco de dados dele é escrito em C. O código desta trilha é um subconjunto pequeno e portável da linguagem; projetos de produção acrescentam APIs de plataforma e muitos testes.
Do código-fonte a um programa rodando
C é uma linguagem compilada. Você escreve o código-fonte num arquivo de texto simples terminado em .c. Um programa chamado compilador (como o gcc ou o clang) o lê e o traduz em código de máquina - as instruções brutas que o seu processador executa - e salva isso como um arquivo executável.
Por baixo dos panos, o compilador trabalha em etapas:
- Pré-processamento: trata as linhas que começam com
#, como#include <stdio.h>, colando o conteúdo de outros arquivos. - Compilação: transforma o seu C em assembly e depois em código de máquina (um arquivo objeto).
- Linkagem: junta o seu arquivo objeto com o código das bibliotecas (como o código por trás do
printf) num único executável.
No Linux ou no macOS, compilar e rodar um programa num terminal fica assim:
$ gcc -Wall -o hello hello.c
$ ./hello
Hello, world!Experimente
Até 15 XPEm que ponto do build?
Classifique cada ação na etapa a que ela pertence. Preveja a ordem do arquivo-fonte até o programa rodando.
“Expandir #include <stdio.h>”
“Traduzir C em código objeto”
“Juntar o seu código com as definições das bibliotecas”
“Executar main()”
gcc é o compilador, -Wall liga avisos úteis, -o hello dá nome ao arquivo de saída, e hello.c é o seu código-fonte. Depois, ./hello roda o programa que você acabou de gerar. Nesta trilha você não precisa instalar nada: os exemplos de código e os exercícios compilam e rodam aqui mesmo na página.
O que torna o C diferente
O C é famoso por confiar no programador. Isso tem lados bons e ruins:
| O C dá a você | O C espera de você |
|---|---|
| Acesso direto à memória por ponteiros | Nunca ler nem escrever memória que não é sua |
| Programas muito rápidos e muito pequenos | Gerenciar a memória por conta própria (sem coletor de lixo) |
| Portabilidade para quase qualquer hardware | Verificar os erros - o C não vai impedir você |
Esta trilha vai ensinar as duas metades: o poder e os hábitos que mantêm esse poder seguro.
Principais conclusões
O C foi criado nos Bell Labs no início dos anos 1970 para escrever o Unix e ainda é usado em sistemas operacionais, dispositivos embarcados, bancos de dados e runtimes de linguagens.
O C é compilado: um compilador como o
gcctransforma o código-fonte.cnum executável em código de máquina, em etapas - pré-processar, compilar, linkar.O C dá a você controle direto sobre a memória e espera que você a use com cuidado.
Quiz da aula
5 perguntas · aprovação com 4 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…