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...

  1. Blender - Modelador 3D e engine de jogos.
  2. Linux - Núcleo das distribuições linux.
  3. Gimp - Editor de imagens.
  4. Darwin - Núcleo do Mac OS X
  5. VLC - Reprodutor de Vídeos

Qual é a história do C?

Dennis ritchie and ken thompson 1973

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