Curso de C - 2. Seu primeiro programa em C
2.1. Estrutura básica de um programa em C
Bem, chega de prosa! Vamos começar a colocar a mão na massa. Iremos começar estudando como é a estrutura básica de um programa bem
simples em C, que escreverá na tela a mensagem "Hello, Linuxdicas!". A seguir você tem o código do programa. As linhas estão
numeradas para facilitar o entendimento.
1 #include <stdio.h>
2
3 /* hello.c - Imprime a mensagem "Hello, Linuxdicas!" na tela */
4 int main()
5 {
6 printf("Hello, Linuxdicas!\n");
7 return 0;
8 }
Agora vamos explicar linha por linha. A linha 1 contém a diretiva #include <stdio.h>, e serve para incluir as funções de uma
biblioteca em seu programa. Neste caso, estamos incluindo a biblioteca de entrada e saída padrão (standard input/output), necessária
para a utilização da função printf(), que veremos adiante. Antes que eu me esqueça, C é uma linguagem que diferencia
minúsculas de MAIÚSCULAS. As palavras-chave e os comandos da linguagem devem ser escritos em minúsculo. Se você declarar
variáveis, funções, tipos, etc, utilizando caracteres maíusculos, não se esqueça de os referenciar da forma correta.
A linha 2 não contém nada... Está em branco. Você pode adicionar linhas em branco, espaços e tabulações em seu código para
torná-lo mais fácil de ser lido.
A linha 3 contém um comentário, iniciado com /* e fechado com */. Comentários são úteis somente para quem programa e/ou mantém o
código-fonte, sendo uma forma de documentar e explicar o que você está fazendo em determinados trechos. O compilador ignora os
comentários (assim como os espaços, tabulações e linhas em branco). Os comentários podem ter uma única linha, como no nosso caso, ou
possuir várias linhas:
/* Isto é um
comentário
válido em C */
É uma prática saudável e recomendável comentar o código.
A linha 4 contém o início da função main(). Esta função marca o início da execução do programa e deve existir em algum lugar
do código para este funcionar corretamente. Se o seu programa tiver somente uma função, ela deverá ser main(). Você me
perguntaria: o que significa aquele int imediatamente antes de main()? Este int está dizendo que main() deve retornar
um valor para o sistema, indicando sucesso ou falha. Este valor é um número inteiro, por isso int. Veremos mais sobre tipos de
dados, e também sobre funções, em outra aula.
Na linha 5 vemos o caractere abre-chaves, um delimitador de bloco. Cumpre a mesma função que begin em Pascal, serve para
abrir um bloco de código. O que estiver dentro do par de chaves pertence a função main(), neste caso.
Mas é na linha 6 que o nosso programa cumpre a sua crucial missão: escrever a mensagem "Hello, Linuxdicas!" na tela. O que você
precisa saber agora é que a função printf() é a principal função para escrita no console (saída padrão). E você me perguntaria: o
que significa aquele "\n" logo depois da mensagem propriamente dita? O "\n" é um caractere especial, e serve para pular para a
próxima linha, assim que acabar de escrever a mensagem. Iremos estudar esses caracteres especiais posteriormente.
OBS: os comandos em C são terminados com um ";" (ponto-e-vírgula). Não esqueça.
Como muitos Linuxers sabem, quando um programa termina sua execução, este retorna para o sistema um código de sucesso ou falha.
É isso que a linha 7 faz. No nosso caso estamos retornando 0 para dizer que o programa executou sem erros. Na prática, poderíamos
ter declarado a função main() para não retornar nada (veremos isso em outra aula), mas isso vai contra o padrão ANSI C, que exige
que seja retornado um valor para o sistema, indicando sucesso ou falha.
E finalmente chegamos à linha 8, onde encontramos o fecha-chaves, que faz a mesma coisa que o end do Pascal (fim do bloco de
código). Nosso programa terminou!!
Em C você tem a liberdade de escrever o seu código em qualquer estilo. Como exemplo o nosso programa:
#include <stdio.h>
/* hello.c - Imprime a mensagem "Hello, Linuxdicas!" na tela */
int main() { printf("Hello, Linuxdicas!\n"); return 0; }
O compilador aceitará sem problemas se você escrever seu código assim, tudo em uma linha. É claro que desta forma o código fica muito
mais difícil de se entender do que da outra forma, mas o compilador aceita. Também é uma prática saudável e recomendável deixar seu
código fácil de ser lido e entendido utilizando espaços, tabulações e quebras de linha.
2.2. Compilando e executando o seu programa
Agora salve o seu programa com o nome hello.c e saia do editor de textos.
Iremos compilar o nosso programa para transformá-lo em um executável. Digite este comando no console:
# gcc hello.c -o hello
O comando acima compila nosso código-fonte e gera o executável. Se você digitar apenas gcc hello.c será criado um executável de
nome a.out. Então, para gerar nosso programa com um nome, precisamos colocar a opção -o nome_do_programa.
Se houver algum erro na compilação, você pode ter esquecido de colocar algum ponto-e-vírgula, ou ter errado na digitação. Abra o
editor de textos e verifique se o seu código não contém erros.
Para executar seu programa, basta digitar:
# ./hello
Se tudo correu bem, você verá na tela a mensagem "Hello, Linuxdicas!". Parabéns! Seu programa foi compilado com sucesso e
executou corretamente.
Agora, para passar o tempo, alguns exercícios.... :)
Na próxima aula estudaremos sobre Variáveis e Constantes. Não percam!
2.3. Exercícios
1) Encontre o(s) erro(s), se houverem, nos seguintes programas:
#include <stdio.h>
/* hello.c - Imprime a mensagem "Hello, Linuxdicas!" na tela
Int Main()
{ printf("Hello, Linuxdicas!\n");
return 0;
}
#include <stdio.h>
/* hello.c - Imprime a mensagem
"Hello, Linuxdicas!" na tela */
int main()
{ printf("Hello, Linuxdicas!\n");
return 0;
}
#include <stdio.h>
int main(){printf("Hello, Linuxdicas!\n");return 0;}
#include <stdio.h>
/* hello.c - Imprime a mensagem "Hello, Linuxdicas!" na tela */
int main()
{ printf(Hello, Linuxdicas!\n);
return 0;
}
2) Porque a função main() deve conter o comando return?
3) Qual a importância da função main()?
Powered by txt2tags