Manual da Linguagem GNU C
Doar para o tradutorDoar para os autores
  • Linguagem GNU C
  • Prefácio
  • 1️1. O Primeiro Exemplo
    • Fibonacci Recursiva
      • Cabeçalho da Função
      • Corpo da Função
    • Pilha e Estouro de Pilha
    • Fibonacci Iterativa
  • 📦2. Um Programa Completo
    • Exemplo de um Programa Completo
    • Explicação do Programa Completo
    • Programa Completo Linha por Linha
    • Compilando o Programa de Exemplo
  • 👜3. Armazenamento e Dados
  • 🥑4. Além dos Inteiros
    • Um Exemplo com Números Não Inteiros
    • Um Exemplo com Arrays
    • Variações para o Exemplo com Array
  • ✍️5. Sintaxe Lexical
    • Escreva Programas em Inglês!
    • Caracteres
    • Espaços em Branco
    • Comentários
    • Identificadores
    • Operadores e Pontuação
    • Continuação de Linha
  • ➕6. Aritmética
    • Aritmética Básica
    • Aritmética de Inteiros
    • Estouro de Inteiros
      • Estouro de Inteiros sem Sinal
      • Estouro de Inteiros com Sinal
    • Aritmética em Modo Misto
    • Divisão e Resto
    • Comparações Numéricas
    • Operações de Deslocamento
      • Deslocar Gera Novos Bits
      • Advertências em Operações de Deslocamento
      • Hacks com Deslocamento
    • Operações Bit-a-bit
  • 🟰7. Expressões de Atribuição
    • Atribuição Simples
    • Lvalues
    • Atribuição Modificadora
    • Operadores de Incremento e Decremento
    • Pós-incremento e Pós-decremento
    • Armadilha: Atribuição em Subexpressões
    • Escreva Atribuições em Instruções Separadas
  • 🕹️8. Expressões de Controle de Execução
    • Operadores Lógicos
    • Operadores Lógicos e Comparações
    • Operadores Lógicos e Atribuições
    • Expressão Condicional
    • Operador Vírgula
  • 🐫9. Gramática dos Operadores Binários
  • 🏁10. Ordem de Execução
    • Reordenação de Operandos
    • Associatividade e Ordenação
    • Pontos de Sequência
    • Pós-incremento e Ordenação
    • Ordenação de Operandos
    • Otimização e Ordenação
  • 🎲11. Tipos Primitivos
    • Tipos de Dados Inteiros
      • Inteiros Básicos
      • Tipos Com ou Sem Sinal
      • Inteiros Estreitos
      • Conversão entre Tipos Inteiros
      • Tipo Booleano
      • Variações de Inteiros
    • Tipos de Dados de Ponto Flutuante
    • Tipos de Dados Complexos
    • O Tipo Void
    • Outros Tipos de Dados
    • Designadores de Tipos
  • 🪨12. Constantes
    • Constantes do Tipo Inteiro
    • Tipos de Dados de Constantes do Tipo Inteiro
    • Constantes de Ponto Flutuante
    • Constantes de Números Imaginários
    • Constantes de Caracteres
    • Constantes do Tipo String
    • Constantes do Tipo String UTF-8
    • Códigos de Caracteres Unicode
    • Constantes do Tipo Caractere Largo
    • Constantes do Tipo String Larga
  • 📐13. Tamanho de Tipo
  • Apêndices
    • F - GNU Free Documentation License
    • G - GNU General Public License
Fornecido por GitBook
Nesta página

Isto foi útil?

Editar no GitHub
Exportar como PDF
  1. 5. Sintaxe Lexical

Comentários

Um comentário encapsula texto que não tem efeito na execução ou no significado do programa.

O propósito dos comentários é explicar o código para as pessoas que o leem. Escrever bons comentários para seu código é extremamente importante – eles devem fornecer informações sobre o contexto, que ajudem os programadores a entender as razões pelas quais o código foi escrito da maneira que está. Você, retornando ao código seis meses depois, precisará da ajuda desses comentários para lembrar por que o escreveu dessa forma.

Comentários desatualizados que se tornam incorretos são contraproducentes, então parte da responsabilidade do desenvolvedor de software é atualizar os comentários conforme necessário para corresponder às mudanças no código do programa.

C permite dois tipos de sintaxe de comentário, o estilo tradicional e o estilo C++. Um comentário tradicional em C começa com '/*' e termina com '*/'. Por exemplo,

/* Este é um comentário na sintaxe C tradicional. */

Um comentário tradicional pode conter '/*', mas esses delimitadores não se aninham como pares. O primeiro '/*' termina o comentário independentemente de ele conter sequências '/*' ou não.

/* Isto /* é um comentário */ Mas isso não! */

Um comentário de linha começa com '//' e termina no final da linha. Por exemplo,

// Isto é um comentário no estilo C++

Comentários de linha se aninham, na prática, porque o '//' dentro de um comentário de linha é parte desse comentário:

// a linha inteira é // um comentário
Isto é código, não comentário.

É seguro colocar comentários de linha dentro de comentários de bloco, ou vice-versa.

/* comentário tradicional
   // contém comentário de linha
   mais um comentário tradicional
 */ o texto aqui não é um comentário

// comentário de linha /* que contém um comentário tradicional */

Mas tenha cuidado ao comentar uma extremidade de um comentário tradicional com um comentário de linha. O delimitador '/*' não inicia um comentário se ocorrer dentro de um comentário já iniciado.

 // comentário de linha  /* e aqui normalmente começaria um comentário de bloco
    Oops! O comentário de linha acabou;
    isto não é mais um comentário.  */

Comentários não são reconhecidos dentro de strings constantes. "/* blah */" é a string constante ‘/* blah */’, não uma string vazia.

Um comentário é sintaticamente equivalente ao espaço em branco, então ele sempre separa tokens. Assim,

  int/* comment */foo;

é equivalente a

  int foo;

mas um código limpo sempre usa espaço em branco real para separar o comentário visualmente do código ao redor.

AnteriorEspaços em BrancoPróximoIdentificadores

Atualizado há 9 meses

Isto foi útil?

✍️