Noções básicas
O que é “C”?
C é uma linguagem de programação, algo que usamos para “falar com o computador”. Você escreve o que quer que ele faça em um arquivo e ele vai fazer, e o C é só uma forma de se fazer isso. Existe uma infinidade de linguagens por aí, mas eu estou aqui para lhes mostrar essa que é considerada por muitos uma das melhores linguagens de todos os tempos, e eu estou sendo inserido nesse “muitos”.
O C simplesmente não ter nenhum simbolo (além de um C genérico) ou mascote pra gente poder tatuar na pele e dizer “eu amo C”, então fica aí minha sugestão pra comunidade (e tem que ser um dinossauro):
Lhes apresento o clancy
- Ilustrator: Cris Ryniak
Como o C funciona?
O C é uma linguagem compilada...
Basicamente, significa que um programa traduz o que você escreve em um arquivo para uma liguagem que só o computador entende.
E é considerado por muitos uma linguagem de médio nível (alguns o consideram uma linguagem de baixo nível), e com isso não estou referindo-me à qualidade do C, mas ao nível de proximidade com o hardware (a parte física do computador). Quanto mais próximo do hardware, mais baixo é o nível e essa característica do C o torna a linguagem mais indicada para fazer aplicações de sistema (programas que manipulam o hardware) e aplicações gráficas (jogos, editores de imagem...).
Só para deixar claro o C é uma linguagem de alto nível, o fato de usarmos simbolos e palavras humanas de uma forma simplificada é o que define baixo e alto nível, mas por ter tanta intimidade com o hardware, as pessoas começaram a considerá-lo em um nível mais baixo.
Só para se ter uma ideia do poder do C, vou listar alguns softwares feitos nessa linguagem:
Todos os softwares listados são open source, dessa forma vocês podem ter certeza de que foi mesmo feito em C, além de poderem editar o código, se quiserem...
- Blender - Modelador 3D e engine de jogos.
- Linux - Núcleo das distribuições linux.
- Gimp - Editor de imagens.
- Darwin - Núcleo do Mac OS X
- VLC - Reprodutor de Vídeos
Qual é a história do C?
Resumidamente, o C foi criado na década de 1970 por Ken Thompson e Dennis Ritchie para reprogramar o UNIX, que era escrito em assembly.
O C é uma evolução da linguagem B que foi influenciada pela linguagem BCPL. No início, a linguagem C era despadronizada, isso significa que cada compilador de C usava uma “versão” diferente, então, em 1983 a ANSI resolveu padronizar o C para que ele funcionasse mais coerentemente em compiladores diferentes, e não foi só a ANSI que padronizou, a ISO também já fez isso.
Como se instala o tal “compilador” C?
Neste capítulo vou demonstrar a instalação em alguns sistemas operacionais, mas todos os exemplos do livro foram testados em um sistema linux, então para garantir que tudo vai funcionar perfeitamente eu aconselho que seja lido e testado em um sistema linux (mesmo que seja uma máquina virtual).
GNU C Collection
O gcc, já vem com uma gama de ferramentas já inclusas, como o compilador C (gcc
) e o compilador C++ (g++
).
Se você usa uma distribuição Linux ou BSD, provavelmente já está instalado, mas, caso não esteja (o que eu duvido muito), é só usar o gerenciador de pacotes para instalar.
Debian
sudo apt install gcc
Red Hat
sudo dnf install gcc
sudo yum install gcc
Arch Linux
sudo pacman -S gcc
Mac OS X
Se você não tem homebrew, rode:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Instalando gcc:
brew install gcc
Windows
Se você não tem o chocolatey, rode no PowerShell em modo administrador:
Set-ExecutionPolicy Bypass -Scope Process -Force
iex((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Instalando gcc
choco install mingw -y
Tiny C Compiler
Uma outra opção de compilador muito interessante é o tcc é um compilador independente com o intúito de gerar códigos pequenos, mas não é recomendado para aplicações grandes, mas para estudo é uma ótima opção.
Debian
sudo apt install tcc
Red Hat
sudo dnf install tcc
sudo yum install tcc
Arch Linux
sudo pacman -S tcc
Mac OS X
brew install tcc
Windows
choco install tcc