Como comentar seus códigos em C - Comentários e Delimitadores

Aprenda a comentar e usar delimitadores em seus códigos de programação C.A medida que seus códigos na linguagem C forem aumentando, eles ficarão incrivelmente difíceis de serem entendidos por outra pessoa.

Sim, futuramente seu código será lido/alterado por outra pessoa, provavelmente você.
Para facilitar esse processo, você pode fazer 'comentários' em seus programas de C, explicando o que cada trecho de código faz.

Além de serem importantes, são considerados uma boa prática de programação. Então, se você quer ser um bom programador C, deixe seus códigos comentados e bem explicados.


Comentando códigos em C - Usando //

Sempre que quiser comentar alguma linha de seu código C, inicie a linha com duas barras: //

Não importa o que você escreva depois dessas duas linhas, elas não serão vistas.
Ela é bastante usada antes de algum trecho de código C, explicando o que as próximas linhas fazem no programa, evitando assim que quem esteja lendo tenha que quebrar a cabeça para adivinhar o que o programador tentou fazer.

Veja o código exemplo:

#include <stdio.h>

int main()
{
    //O seguinte trecho mostra uma mensagem na tela
    //Essas linhas comentadas não irão aparecer na tela
    printf("Meu primeiro programa - C Progressivo!\n");
}

O resultado do código compilado é:

Aprenda a comentar e usar delimitadores em seus códigos de programação C.

No que as linhas que começam com // foram totalmente ignoradas.
Você pode colocar uma ou milhão de linhas: na hora de compilar e linkar, o compilador C irá excluir todas as linhas começadas em //
Logo, os comentários servem apenas para a leitura humana, não afetando em absolutamente nada o desempenho de seu aplicativo C.

Outro uso comum dos comentários é na criação de cabeçalhos de seus programas em C, como no exemplo abaixo:


#include <stdio.h>
// Código que exibe uma mensagem na tela
// Por Fulano de Tal
// Em 21/12/2112
// Para Curso C Progressivo
int main()
{
    //O seguinte trecho mostra uma mensagem na tela
    //Essas linhas comentadas não irão aparecer na tela
    printf("Meu primeiro programa - C Progressivo!\n");
}


Como usar os delimitadores /* */ em linguagem de programação C

Imagine agora que você precisa fazer um comentário de mais de 20 linhas.
Isso é bem comum entre estudantes que estão resolvendo alguma questão e colam o enunciado e idéia da solução no corpo do código.

E aí, vai escrever 20 vezes as duas barras // ?
Claro que não, use os delimitadores '/*' e '*/'.

Tudo o que você quer ver comentando coloca entre /* e */, e tudo que será dentro será ignorado.
A diferença desses delimitadores para as duas barras //, é que as barras ignoram o que tem naquela linha, já os delimitadores /**/ ignoram TUDO que estejam entre eles, seja uma letra, linha ou milhões de linhas.

Veja um exemplo que possui dezenas de linhas entre os delimitadores /**/, mas ao compilarmos e executarmos esse código em C, somente o printf é que faz realmente algo:


#include <stdio.h>

int main()
{
/* Adoro estudar a linguagem de programação C enquanto escuto metal!
Iron Maiden - Fear Of The Dark
I am a man who walks alone
And when I'm walking in a dark road
At night or strolling through the park

When the light begins to change
I sometimes feel a little strange
A little anxious when it's dark

Fear of the dark, fear of the dark
I have a constant fear that something's always near
Fear of the dark, fear of the dark
I have a phobia that someone's always there

Have you run your fingers down the wall
And have you felt your neck skin crawl
When you're searching for the light?
Sometimes when you're scared to take a look
At the corner of the room
You've sensed that something's watching you

Fear of the dark, fear of the dark
I have a constant fear that something's always near
Fear of the dark, fear of the dark
I have a phobia that someone's always there

Have you ever been alone at night
Thought you heard footsteps behind
And turned around and no one's there?
And as you quicken up your pace
You'll find it hard to look again
Because you're sure that someone's there

Fear of the dark, fear of the dark
I have a constant fear that something's always near
Fear of the dark, fear of the dark
I have a phobia that someone's always there

Watching horror films the night before
Debating witches and folklores
The unknown troubles on your mind
Maybe your mind is playing tricks
You sense, and suddenly eyes fix
On dancing shadows from behind

(2x)
Fear of the dark, fear of the dark
I have constant fear that something's always near
Fear of the dark, fear of the dark
I have a phobia that someone's always there

When I'm walking in a dark road
I am a man who walks alone */
    printf("Colocamos a letra da música Fear of the Dark, da banda Iron Maiden - mas voce nao viu !)\n");
}



Use comentários com moderação

Embora seus comentários não prejudiquem o funcionamento de seu programa em C, evite usar ele desnecessariamente, comentando printf e outras coisas óbvias: 'agora exibimos a mensagem', 'agora somamos os números' etc.

Use comentários para explicar o que é o programa, para que serve, qual a utilidade de um algoritmo que é mais complexo, elaborado ou grande.

11 comentários:

Anônimo disse...

desta vez usou:
int main(main)
e não:
int main (void)
eu ainda não vi se explica essa diferença mais à frente mas gostava de saber porque é que desta vez usou assim.

Bom curso
Cumps sapofree

Afonso Torres disse...

eu usei
int main()
e nada alterou ou seja rodou normal
imprimindo na tela o que eu determinei.
o comando entre colchetes pode ter alterações em outras funções eu acho
vou continuar estudando.
estou apenas começando.

Anônimo disse...

A linha
int main(main)
deve ter sido erro de digitação

Marivaldo Cordeiro disse...

Concordo com o Usuário acima deve ter sido erro de digitação pois já foi corrigido.

porém eu tenho uma dúvida e se pudesse me explica eu ficarei muito grato por esclarecer minha curiosidade
Meu sétimo programa em C - C Progressivo!
"linha em branco"
Process returned 43 (0x2B) execution time : 0.004 s
Press ENTER to continue.
que é esta, o que ou qual é o significado de (0x2B) notei que ele muda conforme eu vou compilando ou o tamanho do programa vá aumentando

Anônimo disse...

void segnifica "vazio", portanto () e (void) são a mesma coisa, já q o primeiro parenteses esta vazio e no segundo esta escrito vazio.

Apostila C Progressivo disse...

Sim, Anônimo, void significa vazio, o que não quer dizer que main() e main(void) sejam a mesma coisa.

Usando main(), estamos permitindo que a função main possa receber qualquer número de parâmetros.

Usando main(void) estamos deixando claro que esta função não irá receber nenhum parâmetro.

Anônimo disse...

Penso q o anônimo está certo... não existe diferença, senão pelo acréscimo de mais um token.

Apostila C Progressivo disse...

Não, não está.
main() e main(void) são coisas diferentes.

Sim, num exemplo simples e tranquilo como este, vai ter exatamente o mesmo efeito, assim como na maioria dos exemplos e códigos para estudo.

Agora imagine uma aplicação mais complexa, que exija segurança, um sistema mais robusto com o mínimo de falhas.

Você usar main() vai estar dando a abertura para que seu código receba dados pela main vindo de fora, dados estes que podem ser maliciosos.

Porém, se você usar main(void), sua main não vai receber NADA, podem até tentar enviar, mas não passa, pois assim você deixa bem claro que seu código não precisa de nenhum dado vindo de fora, como parâmetros pela main.

É sempre interessante escrevermos, mesmo desde os exemplos mais simples e básicos, de uma maneira menos vulnerável. Pode não fazer muita diferença agora, mas esse hábito se torna essencial e diferenciador caso queiram seguir por um caminho mais profissional no mundo da programação.

Igor Oliveira da Silva disse...

alguem me explique o que é o return.

Mateus Souza disse...

Igor Oliveira da Silva, para o computador, tudo o que retorna e que não é 0, é erro. O "return 0;" serve para dar o retorno 0 ao computador. Se você não colocar isso, ao instalar, o computador do usuário pode perguntar se o programa foi instalado corretamente.

Anônimo disse...

O 'main(void)' pode ser escrito, também, nas formas 'float main(void), char main(void), double main(void)' ou não???

Gostou desse tutorial de C?
Sabia que o acervo do portal C Progressivo é o mesmo, ou maior que, de um livro ou curso presencial?
E o melhor: totalmente gratuito.

Mas para nosso projeto se manter é preciso divulgação.
Para isso, basta curtir nossa página no Facebook e/ou clicar no botão +1 do Google.
Contamos e precisamos de seu apoio.