Stoa :: C/C++ :: Fórum

Autor Introdução à programação em C/C++ - parte 1

Bem-vindo(a)!

 

Estou escrevendo esta série de mensagens para que exista no Stoa um registro em português e totalmente livre ("as in free speech") sobre programação em C/C++.

 

Eu programo amadoristicamente em C++ há cerca de 15 anos, e, tal como muitos programadores, aprendi diretamente o C++, deixando o C "para depois". Por isso eu escrevo que este material é sobre C/C++: o intuito é que seja documentada especialmente a linguagem C, mas como eu conheço melhor a linguagem C++, pode acontecer de eu cometer algum deslize e escrever algo em C++ achando que funciona em C mas na verdade não funciona. Então fique atento, teste tudo e tenha em mente que livros como o de Kernighan e Ritchie é que são as referências canônicas para C.

 

Antes de mais nada, me desculpem os que esperam acompanhar estas mensagens "semana a semana" como um curso, mas eu não tenho como estruturar um curso de C/C++ e seguir esse planejamento ao pé da letra. O que irei fazer é publicar a cada semana uma mensagem sobre algum aspecto da programação em C/C++, tentando ir mais ou menos dos aspectos mais básicos para os mais avançados. Entretanto, como o objetivo é criar um material de referência, mesmo no começo da redação do material, que será sobre a sintaxe de C/C++, certos usos mais complicados da sintaxe serão apresentados, pois futuramente alguém que queira se informar sobre um uso complicado de certa parte da linguagem irá consultar as mensagens sobre essa parte da linguagem - de outra forma seria um horror procurar a informação necessária.

 

Numa introdução a programação, geralmente há uma seção inicial sobre a história do computador, e sobre a história da linguagem a ser aprendida. Irei poupá-los desse intróito: vamos direto pôr as mãos na massa.

 

Para escrever programas em C/C++, tudo o que é necessário é papel e caneta. Entretanto, para que esses programas se transformem em software efetivamente "rodado" num computador, é necessário que esse programa seja escrito de forma digitalizada e que esse arquivo de texto com o código do programa (chamado código-fonte) seja enviado para um programa chamado compilador, que faz a tradução de um arquivo texto (o código-fonte) para um arquivo executável (seu software).

 

Na verdade, a coisa pode ser ligeiramente mais complicada: o código-fonte pode se "esparramar" em diversos arquivos de texto, e o executável final pode também ser um conjunto de arquivos executáveis ou não, de acordo com as especificações da chamada ao compilador. Entretanto, até que abordemos neste curso como compilar programas em C/C++ de maneira complexa, uma introdução simplificada será suficiente.

 

Como dito anteriormente, para fazer um programa é necessário escreve-lo numa linguagem de programação, no nosso caso em C, utilizando apenas expressões válidas nessa linguagem. Quais expressões são válidas será o tema de toda a primeira parte do curso: hoje veremos apenas como compilar um programa, que será uma atividade que você deverá realizar muitas e muitas vezes durante seu aprendizado de C.

 

Infelizmente, para cada compilador a maneira de compilar é diferente, e portanto seria impraticável explicar como se compila utilizando cada compilador existente (aliás, eu nem sei isso). Existem basicamente dois tipos de compiladores: os que são de "linha de comando", cujo principal exemplar é o GCC, e os de "IDE" (Integrated Development Environment - Ambiente Integrado de Desenvolvimento). Neste material, utilizaremos o GCC, e esperamos que você faça o mesmo, pelas seguintes razões:

 

O GCC é livre e é o padrão de facto da indústria de software.

O GCC é um compilador de muitas linguagens, o que significa que aprendendo a mexer com ele você já terá na manga um trunfo quando for aprender algumas outras linguagens. Além disso, o GCC é livre.

O GCC está disponível para praticamente qualquer computador, desde que esse computador possa rodar o linux, seja como sistema operacional seja como aplicativo (por exemplo, o Cygwin é um linux que roda dentro do Windows; você pode usar o GCC dentro do Cygwin, dentro do Windows). Isso sem contar que o GCC é livre.

E uma última grande razão: o GCC é software livre!

 

Pode ser encontrada a documentação do GCC no site da Gnu, afinal GCC quer dizer "Gnu Compiler Collection", ou seja, "Coleção de Compiladores Gnu". Recomendo que seja ao menos dada uma olhadela no manual do GCC, que pode ser obtida com o comando man no seu prompt de commando:

 

callado@tlaloc ~ $ man gcc

 

Para quem quer se aventurar com algum "outro" compilador, leia o manual e a documentação desse compilador. Para quem usa Windows, uma boa alternativa é utilizar o DJGPP, que é uma versão do GCC para Windows, mas que não é mantida pela Gnu.

 

Mão na massa: Abra um editor de textos e digite o texto abaixo:

 

#include<stdio.h>

 

int main() {

printf("\nOla, mundo da programacao!!!\n");

return 0; }

 

Salve o texto sem formatação, isto é, o arquivo deve ser de "texto puro", não podendo ser arquivo "do Word" nem nada parecido. Tampouco utilize acentos ou cedilhas. No Windows, um arquivo do Notepad serviria, mas depois você deverá eliminar a extensão ".txt" do arquivo. No linux, o Emacs salva em formato texto. Salve o arquivo com o nome "intro.c".

 

Abra sua linha de comando e digite "gcc -o intro intro.c":

 

callado@tlaloc ~ $ gcc -o into intro.c

 

E finalmente digite "./intro":

 

callado@tlaloc ~ $ ./intro

Ola, mundo da programacao!!!

No windows, você deve abrir uma janela de DOS e digitar o nome do programa sem o "./", ou seja, apenas "intro".

 

Se tudo deu certo, parabéns! Você acaba de compilar seu primeiro programa em C!

Aprendam discípulos a primeira, a única, linguagem de Deus! Enviada direto do céu (av. Livingston, nro 23 AT&T e bell Labs) pelo primeiro e único profeta, (fazendo reverência...) ooohh Brian Kernigham, e usada pelos únicos,  verdadeiros e puros santos escolhidos de Deus: Linus Trovalds e Richard Stallman. Abençoado seja aquele que procura a sabedoria, pois terás que passar pelos ponteiros do inferno, e atrevessar o longo caminho do gdb até a iluminação.

<< Voltar aos tópicos Responder