# Programar em C/Pré-requisitos

É pré-requisito para um bom aprendizado de qualquer linguagem de programação conceitos sobre lógica de programação.
Além disso, para programar em C, você precisa de um editor de textos e um compilador, discutidos a seguir.

## Editor

Para editar o código de um programa, é apenas necessário um editor de textos, qualquer um, até mesmo o Bloco de Notas do Windows.
No entanto, há diversos editores que apresentam recursos que facilitam a edição de programas, como: destaque/coloração de sintaxe, complementação de código, formatação (indentação) automática, ajuda integrada, comandos integrados para compilar etc. Entre todos eles podemos destacar o Vim e o Emacs, ambos com versões para Windows, Linux e Mac OS.
Em sistemas GNU/Linux, a maioria dos editores de texto já possui recursos para facilitar a edição de programas em C. Principalmente, devido ao fato da maioria destes e boa parte do sistema terem sido programadas utilizando C ou C++.
Entretanto, o editor apenas edita o código. Para transforma-lo em linguagem de máquina e o executar, precisaremos de um compilador.

## Compilador

O código em linguagem C consiste em instruções que o computador deverá seguir. O compilador realiza o trabalho de traduzir essas instruções para linguagem de máquina, de forma a poderem ser executadas pelo computador.

## Ligador ou linker

A ligação de arquivos consiste na construção de uma imagem memória que contém partes de código compilados separadamente. Em outras palavras ele une os arquivos objetos e as bibliotecas (estáticas, dinâmicas) para formar uma nova biblioteca ou um executável.

## Obtendo um compilador

Existem diversos compiladores disponíveis:

#### Para Windows ou DOS

* MinGW (antigo mingw32): uma espécie de gcc para Windows. É o compilador incluído com o Dev-C++, da Bloodshed. O Dev-C++ é um IDE (sigla em inglês para Ambiente Integrado de Desenvolvimento) que facilita a edição e compilação de programas. Tem tradução para Português do Brasil.
* Borland C++: a Borland disponibilizou um compilador gratuito que funciona em linha de comando, como alternativa ao IDE comercial.
* DJGPP: porte do gcc para DOS. Também funciona no Windows, mas se o objetivo for rodar no Windows, recomenda-se o uso do mingw, que pode usufruir de todos os recursos do Windows.
* Microsoft Visual C++: compilador comercial da Microsoft, que também tem um IDE. O Framework .NET, gratuito, também inclui o compilador (em linha de comando) do Visual C++.
* Bloodshed DEV-C++: ambiente de desenvolvimento integrado livre que utiliza os compiladores do projeto GNU para compilar programas para o sistema operacional Microsoft Windows.

#### Para Linux/Unix-like

* gcc: é um conjunto de compiladores oficiais do projeto GNU, de código aberto. Costumam vir instalados na maioria das distribuições GNU/Linux e está disponível para diversas plataformas, principalmente para as baseadas em sistemas do tipo unix.
* GNU linker: é o ligador do projeto GNU o nome do programa é "ld" e faz parte do pacote GNU Binary Utilities.

## Links externos

* CodeBlocks: página para download do CodeBlocks, uma IDE para C ao estilo do Dev-C++, porém, mais nova.
* Dev-C++: página para download do Dev-C++.
* DJGPP: página oficial, com informações e links para download.
* GCC: página oficial do compilador para diversas plataformas.