Carregando
0x00Lição 1 de 20

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.

8 min Questionário com 5 perguntas
Ao final desta lição, você saberá
  • 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:

  1. Pré-processamento: trata as linhas que começam com #, como #include <stdio.h>, colando o conteúdo de outros arquivos.
  2. Compilação: transforma o seu C em assembly e depois em código de máquina (um arquivo objeto).
  3. 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:

terminal
$ gcc -Wall -o hello hello.c
$ ./hello
Hello, world!

Experimente

Até 15 XP

Em que ponto do build?

Classifique cada ação na etapa a que ela pertence. Preveja a ordem do arquivo-fonte até o programa rodando.

0 de 4 classificadosPontuação 0/0
  • “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 ponteirosNunca ler nem escrever memória que não é sua
Programas muito rápidos e muito pequenosGerenciar a memória por conta própria (sem coletor de lixo)
Portabilidade para quase qualquer hardwareVerificar 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 gcc transforma o código-fonte .c num 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…