Unixtopia

main/ artigos/

Tutorial de C

Você deve ter ao menos alguma noção básica de conceitos essenciais de programação antes de ler isto, como o que é uma linguagem de programação, source-code e linha de comando. Se você já conhece um pouco outra linguagem, isto deve ser bem fácil de entender. Este tutorial se concentra em ensinar C puro, principalmente programas somente de texto de linha de comando. Há um pequeno bônus que mostra alguns princípios básicos de programação gráfica no final, mas tenha em mente que é inevitável aprender passo a passo, por mais que você queira começar a programar jogos gráficos, primeiro você tem que aprender bem a linguagem em si. Não tenha pressa. Confie neste conselho, ele é sincero. Se fizer dois capítulos por dia, deve levar cerca de meia hora, em uma semana você saberá C básico.

Artigos complementares para este tutorial são

Sobre C e programação

C é:

A programação em C funciona assim:

Então, para escrever o source-code, você precisará de um editor de texto, mas você deve usar algum que possa destacar a sintaxe C, isso ajuda muito na programação e é praticamente uma necessidade. O editor ideal é o vim, mas é um pouco difícil de aprender, então você pode usar algo tão simples quanto o Gedit ou o Geany. Não use IDEs enormes. Você definitivamente não pode usar um editor de documentos avançado que funcione com rich text, como aquela porcaria da Micro$oft. Em seguida, você precisará de um compilador C. Usaremos o mais comumente usado, chamado gcc, você pode tentar outros, como o tcc se quiser. Se estiver em um sistema semelhante ao UNIX, como GNU/Linux, o que provavelmente deveria, o gcc provavelmente já está instalado. Abra um terminal e escreva gcc para ver se ele está instalado, se não, então instale-o, como com sudo apt install build-essential se você estiver em uma distribuição baseada em Debian. Se você for extremamente preguiçoso como eu, existem compiladores C online que funcionam em um navegador da web. Você pode usá-los para experimentos rápidos, mas observe que há algumas limitações, como não ser capaz de trabalhar com arquivos, e você definitivamente deve saber como compilar programas você mesmo. Existem vários padrões de C. Aqui, abordaremos o C99, mas não se incomode com isso no momento.

Primeiro programa

Vamos tentar compilar rapidamente um pequeno programa para testar tudo e ver como tudo funciona na prática. Abra seu editor de texto e cole este código:

/* programa de C simples */

#include <stdio.h>

int main(void)
{
 puts("Funciona.");
 return 0;
}

Salve este arquivo e nomeie-o program.c. Abra um emulador de terminal, ou uma interface de linha de comando equivalente, localize-se no diretório onde você salvou o arquivo e compile o programa com o seguinte comando:

gcc -o program program.c

O programa deve compilar e o programa executável deve aparecer no diretório. Você pode executá-lo com:

./program

E você deve ver "Funciona." escrito na linha de comando.

Agora vamos ver o que o source-code significa:

Observe também como o source-code é formatado, por exemplo, o recuo do código dentro dos colchetes. Caracteres em branco, espaços, novas linhas, tabulações, são ignorados pelo compilador, então podemos teoricamente escrever nosso programa em uma única linha, mas isso seria ilegível. Usamos recuo, espaços e linhas vazias para formatar o código para que fique bem legível. Para resumir, vamos ver uma estrutura geral de um programa C típico. Você pode simplesmente copiar e colar isso para qualquer programa novo e então começar a escrever comandos na função principal.

#include <stdio.h> /* inclua a biblioteca de I/O */
/* mais bibliotecas podem ser incluídas */

int main(void)
{
/* escreva comandos aqui */

return 0; /* sempre o último comando */
}

Variáveis, aritmética e tipos de dados

A programação é similar à matemática, calculamos equações e transformamos valores numéricos em outros valores. Você provavelmente sabe que em matemática usamos variáveis como x ou y para denotar valores numéricos que podem mudar, portanto, variáveis. Na programação, também usamos variáveis ​, aqui variável é um lugar na memória que tem um nome, e neste lugar será armazenado um valor que pode mudar ao longo do tempo. Podemos criar variáveis chamadas x, y, myVariable ou score e então armazenar valores específicos, por enquanto, vamos considerar apenas números, nelas. Podemos ler e escrever nessas variáveis a qualquer momento. Essas variáveis residem fisicamente na RAM, mas não nos importamos realmente onde em qual endereço elas estão localizadas. Nomes de variáveis ​​não podem começar com um dígito, e não podem ser nenhuma das keywords reservadas. Elas também não devem ser todas maiúsculas ou começar com maiúsculas, elas são normalmente usadas para outras coisas. Nomeamos variáveis como myVariable ou my_variable, escolha um estilo, não os misture. Em C, assim como em outras linguagens, cada variável tem um certo tipo de dado; ou seja, cada variável tem associada uma informação de que tipo de dado está armazenado nela. Isso pode ser, por exemplo, um número inteiro, fração, um caractere de texto, string de texto etc. Os tipos de dados são um tópico mais complexo que será discutido mais tarde, por enquanto começaremos com o mais básico, o tipo inteiro, em C chamado int. Uma variável int pode armazenar números inteiros no intervalo de pelo menos -32768 a 32767.

#include <stdio.h>

int main(void)
{
 int myVariable;

 myVariable = 5;

 printf("%d\n",myVariable);

 myVariable = 8;

 printf("%d\n",myVariable);
}

Após compilar e executar o programa, você deve ver:

5
8

A última coisa a aprender são os operadores aritméticos. Eles são apenas operadores matemáticos normais, como +, - e /. Você pode usá-los junto com colchetes para criar expressões. As expressões podem conter variáveis e podem ser usadas em muitos lugares onde as variáveis podem ser usadas, mas não em todos os lugares, por exemplo, no lado esquerdo da atribuição de variáveis, isso não faria sentido:

/* Programa simples que calcula e imprime seu IMC. */

#include <stdio.h>

int main(void)
{
 int heightCm = 175;
 int weightKg = 75;
 int bmi = (weightKg * 10000) / (heightCm * heightCm);

 printf("%d\n",bmi);
}

Vamos mencionar rapidamente como você pode ler e escrever valores em C para que possa começar a experimentar seus próprios pequenos programas. Você não precisa entender a sintaxe a seguir ainda, ela será explicada mais tarde, agora basta copiar e colar os comandos:

Branches e loops: if, while, for

Ao criar algoritmos, não basta apenas escrever sequências lineares de comandos. Duas coisas, chamadas estruturas de controle, são muito importantes de se ter além disso:

TODO