Programando em C usando Linux, uma breve introdução!

programando-em-c-usando-linux-uma-breve-introducao

Olá caros leitores. Hoje começaremos uma série de postagens referentes à programação utilizando a linguagem C. A proposta dessa série é mostrar uma abordagem mais prática e visível da linguagem, ao invés do uso indiscriminado dos códigos, ou seja, o leitor terá a cada postagem base suficiente para entender o mecanismo da linguagem a cada programa elaborado.

Inicialmente, usaremos apenas um editor de texto qualquer e o terminal para elaboração dos nosso códigos fonte. Sei que serei criticado em relação a isso, porque algumas pessoas irão querer usar IDE’s.

Porém acredito que o aprendizado também pode ser feito através da repetição em paralelo com o embasamento teórico. Posteriormente, quando estivermos falando sobre estruturas de repetição usaremos a IDE Codeblocks para fazer o processo depuração do código. Mas, a priori usaremos apenas editor de texto, que no caso é o gedit e o terminal.

Entendendo a linguagem C

Os computadores entendem apenas a linguagem binária, isto é, compreendem somente “0” e “1“. Mas este texto que você está vendo agora está no idioma (linguagem) humano(a). Então precisaremos de algum mecanismo para fazer essa tradução.

O programa responsável por essa tradução da linguagem inteligível para seres humanos (alto nível) para a linguagem de máquina (baixo nível) é chamado compilador. A figura abaixo mostra simplificadamente esse processo.

Obviamente, este processo é mais complexo do que mostrado na figura. Porém, como estamos no início, vamos nos ater a ela.

Preparando o Linux para a linguagem C

Se você usa alguma das distribuições Debian, Ubuntu ou Arch Linux, muito provavelmente o conjunto de compiladores para C já estão instalados. Mas, vamos supor que não esteja. Então se você usa Ubuntu ou Debian execute o seguinte comando:

Terminal
sudo apt install build-essential

Se usa Arch Linux:

Terminal
sudo pacman -S base base-devel

Criando primeiro programa em C no Linux

Pronto! Você já está pronto para fazer seus programas em C. Iremos usar o gcc (GNU Compiler Collection) para compilar nossos programas. Começaremos com o programa famigerado de qualquer da área de tecnologia: Hello World ou Olá mundo. Que consiste em imprimir na tela essa mensagem na tela do usuário.

#include <stdio.h>

#include <stdlib.h>

int main()

{

 printf("Hello world!");

 return 0;

}

Como estamos elaborando um programa na linguagem C, devemos salvar a extensão do arquivo em .c para ser feita a compilação e execução do programa. Para isso, o código-fonte acima deve ser digitado no editor de texto de sua preferência e salvo, por exemplo, como programa01.c. Posteriormente devemos fazer o processo de compilação do código-fonte.

Por exemplo, você salvou o arquivo na área de trabalho. Então precisaremos mudar o diretório para onde o arquivo está salvo. Para isso seguiremos para área de trabalho fazendo o seguinte comando:

Terminal
cd Área\ de\ Trabalho/

Se seu sistema estiver em inglês, o comando fica:

Terminal
cd Desktop

Com a mudança do diretório, agora você pode fazer o processo de compilação com o comando:

Terminal
gcc programa01.c

Observe que foi gerado um arquivo de saída chamado a.out. Mas, não seria mais produtivo e lógico se quisermos dar o nome a esse arquivo? Isso é possível! Você somente basta determinar o nome desse arquivo de saída no momento da compilação com o comando:

Terminal
gcc programa01.c -o programa01

Após gerado o executável, você pode executar esse programa quantas vezes quisermos com o comando mesmo estando em outra máquina:

Terminal
./programa01

Esmiuçando linha a linha em C

#include stidio.h – Estamos incluindo algo, mas o quê? Exatamente o item que está entre <>, ou seja:

std (standard) – Padrão
io (input/output) – Entrada e saída
.h (header) – Arquivo de cabeçalho

Agora fica mais bem fácil de entender! No caso da linha 01, estamos incluindo para ao programa a manipulação de dados pelos dispositivos de entrada e saída padrão, no caso teclado e monitor respectivamente. Mas aí você está se perguntando: “Mas isso é lógico! Estou fazendo programas aqui no computador somente usando esses periféricos”. Esse pensamento está incompleto. Pense comigo: Se você fizesse um programa para ficar lendo a temperatura de forno industrial, você usaria teclado e monitor?

Por isso o símbolo de # antes do include. Esse processo que acontece no momento de compilação Então, no nosso caso como estaremos usando a entrada e saída padrão usaremos essa diretiva de compilação. Neste caso, também, não há a necessidade de aprofundamento deste conceito.

Da mesma forma acontece com o próxima linha:

  • #include <stdlib.h>
  • std (standard) – padrão
  • lib (library) – biblioteca
  • h (header) – cabeçalho

De forma análoga, nesta linha será feita a inclusão de bibliotecas padrão para uso geral da biblioteca na linguagem C.

int main () – Todo programa deverá começar de algum ponto. No caso de programas em C, essa função é chamada de main (ou principal). Observe que ela contém duas chaves abrindo e fechando, indicando um bloco de instruções. Outra coisa importante é que ao final de cada instrução deve ser colocado um ‘;’ para indicar ao compilador que aquela instrução foi terminada.

Por enquanto, não vou entrar no mérito dos parenteses para que não atrapalhe mais do que ajude. O que é importante que seja sabido agora, é que esse int antes da função refere-se ao tipo do retorno desta função.

printf (Impressão formatada) – Como o nome já explica, essa função irá imprimir alguma coisa na tela, mas como? A impressão na tela terá um formato determinado pelo programador. Observe que nessa função, o texto, conjunto de caracteres ou strings são digitados dentro do símbolo das aspas duplas.

return 0; – Retorno da função, alguns sistemas operacionais podem encarar como erro o fato de não retornarmos nada da função principal que exigia um dado do tipo inteiro, então pode deixar com essa linha. Você pode testar sem essa linha, caso não funcione a coloque novamente.
Para treinar, você pode ficar alterando o conteúdo do texto com qualquer mensagem entre as aspas duplas e repetir todo o processo de compilação e execução.