Lançado · em melhoria
Programming language · Desde 1972
C é uma linguagem de sistemas compacta e portável, compilada para código nativo rápido, que dá controle direto sobre memória e hardware.
C é uma linguagem de programação procedural de uso geral, criada por Dennis Ritchie no Bell Labs para escrever o sistema operacional Unix. Depois foi padronizada pela ANSI e pela ISO; hoje o comitê ISO/IEC JTC1/SC22/WG14 mantém o padrão, e revisões como C99, C11 e C17 são amplamente usadas. A linguagem tem poucas palavras-chave e é formada por peças simples (funções, structs e ponteiros) que o compilador traduz diretamente para código de máquina.
C se destaca onde importam desempenho previsível, executáveis pequenos e controle direto da memória: kernels de sistemas operacionais, drivers de dispositivo, firmware de microcontroladores, runtimes de outras linguagens e bancos de dados. Quase toda plataforma tem um compilador C, e a convenção de chamada do C (ABI) é o ponto comum que outras linguagens usam para chamar bibliotecas umas das outras. Em troca, C não verifica os limites de arrays nem gerencia memória automaticamente, então evitar estouros de buffer e uso de memória já liberada é responsabilidade de quem programa.
Para começar, instale GCC, Clang ou MSVC e compile programas pequenos pelo terminal. A ordem mais comum é variáveis e tipos, estruturas de controle, funções, arrays e strings, ponteiros, structs e, por fim, memória dinâmica. Ative os avisos com -Wall -Wextra, consulte a biblioteca padrão no cppreference e crie o hábito de rastrear erros de memória com AddressSanitizer e GDB.
Ponteiros dão acesso direto a endereços de memória, e malloc e free permitem gerenciar a memória manualmente, para você decidir exatamente como os dados são organizados e os recursos usados.
A linguagem é compacta e definida por um padrão ISO, então código que segue o padrão pode ser recompilado para uma grande variedade de sistemas operacionais e processadores.
C é compilada para código de máquina nativo quase sem runtime, o que permite usá-la até em firmware e bootloaders que rodam sem sistema operacional.
A interface de funções do C funciona como ABI padrão de fato, e linguagens como Python, Rust e Go chamam bibliotecas C diretamente por meio de sua FFI.
No Linux Debian ou Ubuntu, instale GCC e Make com o comando abaixo (no Fedora, use sudo dnf install gcc make). No macOS, execute xcode-select --install para obter as Xcode Command Line Tools, que incluem o Clang. No Windows, instale o MSYS2 e execute pacman -S mingw-w64-ucrt-x86_64-gcc no shell UCRT64, ou instale o Visual Studio Build Tools com a carga de trabalho Desenvolvimento para desktop com C++.
sudo apt install build-essentialAbra um novo terminal e confira se o compilador mostra a versão. No macOS, o comando gcc aponta para o Apple Clang, então aparece uma versão do Clang. Se você instalou o MSVC, execute cl no Developer Command Prompt.
gcc --versionSalve o primeiro programa como hello.c, compile com os avisos ativados e o padrão C17 e execute. Com o MSVC, compile com cl /W4 hello.c e execute hello.exe.
gcc -Wall -Wextra -std=c17 hello.c -o hello && ./hello#include <stdio.h> inclui o cabeçalho de entrada e saída padrão, onde printf é declarada. A função main é o ponto de entrada do programa, e (void) indica que ela não recebe argumentos. printf imprime o texto, e \n é uma quebra de linha. return 0 avisa ao sistema operacional que o programa terminou com sucesso. O gcc compila o código-fonte em um executável chamado hello, e ./hello o executa.
hello.c
#include <stdio.h>
int main(void) {
printf("Hello, world!\n");
return 0;
}
gcc hello.c -o hello && ./helloSeis capítulos que levam você da instalação aos conceitos essenciais de C.
Tire dúvidas, compartilhe experiências e troque opiniões sobre C.
Ainda não há discussões. Comece a primeira.
0 comentários
Fazer login · Faça login para deixar um comentário.
Seja o primeiro a comentar.