Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

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.

19 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

Unknown 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

Unknown 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.

igoros635@gmail.com disse...

alguem me explique o que é o return.

Anônimo 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???

Rogerio Carvalho disse...

o codeblock nao esta aceitando os comentários com barras, apresenta a mensagem de erro: expected expression before "/" token e na linha seguinte error: stray '\343' in program.

Alguém pode ajudar? Com os delimitadores esta ok.

Unknown disse...

Marivaldo Cordeiro,

O (Ox2B) que você utilizou no exemplo, é o endereço de memória utilizado pelo programa durante uma determinada execução escrito no padrão Hexadecimal. Por isso a cada execução do programa, o dado entre parenteses é alterado.

O return serve para enviar algum dado para o endereço de memória responsável pela chamada da função.

Att, Saul

Unknown disse...

Opa tenho uma dúvida a respeito de comentários, escrevi um texto no code blocks assim:
///Letra (a): ler uma string de até 20 caracteres.
Minha intenção era só aumentar a visibilidade do texto, para explicar o código que fiz, já que escrevendo com duas barras //, fica difícil ler de longe, e depois que explicasse eu colocaria // novamente, mas mesmo com as 3 barras o texto mudou de cor cinza que é a cor padrão para um comentário para a cor azul, rodei o programa e funcionou normalmente sem que o texto atrapalhasse o resto do código, pode me explicar se:

char resposta[1000];
int escolha;

printf("isso também é um comentário?");
printf("Escolha (1)SIM (2)NÂO: ");
scanf("%d", &escolha);

if ( escolha == 1) {
printf("Qual a diferença entre os dois tipos de comentários com /?: ");
gets(resposta);
}
else
printf("Então o que seria esse comando ///?: ");
gets(resposta);

return 0;

Lucas de Lima disse...

Muito Bom!!!

Anônimo disse...

Boa noite !!
Quero parabenizá-los pelo trabalho de vcs! Muito bom!!
Neste ano 2019 faço 60 anos e vou aprender C e os responsáveis por isso são vcs. Comecei hj e está dando tudo certo, até assustei minha esposa qdo bipou o computador rsrs! Vida longa a vcs, com muita sabedoria!!

Unknown disse...

Oi, sabe me dizer como eu faço a quebra de linha automática nos comentários?

Quero colar um texto mas sempre cai tudo numa linha só

Anônimo disse...

Ctrl + ; muda o texto da linha para comentário no Dev C++

Unknown disse...

Ótima postagem!Vai me ajudar na escrita de um artigo que estou publicando. vlw!