sexta-feira, 8 de janeiro de 2010

Elementos de sintaxe


; (ponto e vírgula)
Usada para terminar uma sentença.


Exemplo
int a = 13;

Dica

Esquecer de finalizar uma linha com ponto e vírgula causa um erro de compilação. O texto sobre o erro pode ser óbvio e se referir a um ponto e vírgula faltando, ou não. Se ocorrer um erro de compilação impenetrável ou aparenetemente ilógico uma das primeiras coisas a checar é um ponto e vírgula faltando na vizinhança, precedendo a linha indicada pelo compilador.




{} (chaves)





Chaves são uma parte essencial da linguagem de programação C. Elas são usadas em muitas construções diferentes, descritas abaixo, e isto pode algumas vezes ser confuso para iniciantes.
Uma chave abrindo "{" deve sempre ser seguida por uma fechando "}". Frequentemente nos referimos a esta condição como equilibrio entre as chaves. A IDE (integrated development environment ou ambiente de desenvolvimento integrado) do Arduino inclui uma característica prática para checar o equilibrio das chaves. Apenas com o selecionar de uma chave ou clicar no ponto imediatamente posterior faz com que sua companheira lógica seja destacada.
No presente momento esta característica é um pouco defeituosa e a IDE frequentemente encontrará (incorretamente) uma chave em um bloco de texto que tenha sido comentado.
Programadores principiantes e programadores vindos das linguagens C e do BASIC frequentemente consideram o uso das chaves confuso ou desalentador. Afinal as mesmas chaves substituem a sentença RETURN em uma subrotina(função), a sentença ENDIF em uma condicional e a sentença NEXT em um FOR.
Por que o uso das chaves é tão variado, é uma boa prática de programação digitar o fecha-chaves "}" logo após digitar o abre-chaves "{" quando estiver fazendo uma construção que as requer. Inserte então alguns "ENTER" entre as chaves e comece a digitar o código. Agindo assim suas chaves nunca ficarão desequilibradas.
Chaves desequilibradas causam erros de comilação bastante enigmáticos e que podem ser difíceis de rastrear em um programa longo. Por causa de seus usos variados, as chaves são também incrivelmente importantes para a sintaxe de um programa e mover uma chave uma ou duas linhas pode alterar completamente o seu significado.

Os principais usos das chaves


Funções

  void myfunction(datatype argument){
    sentença(s)
  }

Loops

  while (expressão booleana)
  {
     sentença(s)
  }

  do
  {     
      sentença(s)  
   } while (expressão booleana);

  for (inicialização; condição de término; expressão de incremento)
  {
     sentença(s)
  } 

Sentenças condicionais

  if (expressão booleana)
  {
     sentença(s)
  }

  else if (expressão booleana)
  {
     sentença(s)
  } 
  else
  {
     sentença(s)
  }



// (comentarios)





Comentários são linhas no programa que são usados para informar a você mesmo ou outras pessoas sobre o modo como o progama trabalha. Elas são ignoradas pelo compilador e não são exportadas para o processador e portanto não ocupam a memória do chip ATmega.
O único propósito dos comentários são ajudar a entender (ou relembrar) como o programa funciona. Há dois modos diferentes de marcar uma linha como um comentário.


Exemplo


 x = 5;  // Esta é uma linha simples de comentário. Qualquer coisa depois das barras é um comentário 
         // até o fim da linha

/* este é um bloco de comentário - usado para "comentar" blocos inteiros de código

if (gwb == 0){   // não há problema em uma linha simples dentro de um bloco de comentário
x = 3;           /* mas outro bloco de comentário é inválido */
}
// não esqueça de fechar o bloco de comentário, eles têm que ser equilibrados
*/

Dica
Quando estiver experimentando com o código "comentar" partes do programa é um modo conveniente de remover linhas que podem conter problemas. Este procedimento mantém as linhas no código mas as trasnforma em comentários de modo que o compilador as ignora. Isto pode ser especialmente útil quando tentamos localizar um problema, ou quando um programa apresenta erros de compilação cujas explicações são obscuras ou inúteis.




/* */ (Bloco de Comentarios)

Comentários são linhas no programa que são usados para informar a você mesmo ou outras pessoas sobre o modo como o progama trabalha. Elas são ignoradas pelo compilador e não são exportadas para o processador e portanto não ocupam a memória do chip ATmega.
O único propósito dos comentários são ajudar a entender (ou relembrar) como o programa funciona. Há dois modos diferentes de marcar uma linha como um comentário.

Exemplo


 x = 5;  // Esta é uma linha simples de comentário. Qualquer coisa depois das barras é um comentário 
         // até o fim da linha

/* este é um bloco de comentário - usado para "comentar" blocos inteiros de código

if (gwb == 0){   // não há problema em uma linha simples dentro de um bloco de comentário
x = 3;           /* mas outro bloco de comentário é inválido */
}
// não esqueça de fechar o bloco de comentário, eles têm que ser equilibrados
*/

Dica
Quando estiver experimentando com o código "comentar" partes do programa é um modo conveniente de remover linhas que podem conter problemas. Este procedimento mantém as linhas no código mas as trasnforma em comentários de modo que o compilador as ignora. Isto pode ser especialmente útil quando tentamos localizar um problema, ou quando um programa apresenta erros de compilação cujas explicações são obscuras ou inúteis.




#define
é um componente muito útil da linguagem C que permite ao programador dar um nome a uma constatnte antes que o programa seja compilado. Constantes definidas no Arduino não ocupam espaço em memória no chip. O compilador substitui referêancias a estas constantes pelo valor definido no momento da compilação.

Isto pode causar alguns efeitos indesejáveis se, por exemplo, um nome de constante que tenha sido defindo por um #define é incluido em alguma outra constante ou nome de variável. Neste caso o texto deve ser substituido pelo valor (ou texto) do #define.

Em geral, a palavra chave const é preferível para definir constatntes e deve ser usada ao invés de #define.

A sintaxe do #define na linguagem Arduino é a mesma da linguagem C:

Sintaxe

#define nomeDeConstante valor
Verifique que o # é necessário.

Exemplo


#define ledPin 3
// O compilador vai substituir quanquer menção a ledPin pelo valor 3 no momento da compilação.

Dica

Não há ponto e vírgula após a declaração #define. Se você incluir um o compilador vai lançar erros críticos no final do programa.
#define ledPin 3;    // isto é um erro
Do mesmo modo o compilador gerará erros se após o #define houver um =.
#define ledPin  = 3  // isto também é um erro


#include

é usado para incluir outras bibliotecas no seu programa. Isto permite ao programador acessar um grande número de bibliotecas padrão da linguagem C (grupos de funções pré-definidas), e também à bibliotecas desenvolvidas especificamente para o Arduino.
A página principal de referência para as bibliotecas C AVR (AVR é a referência aos chips Atmel nos quais o Arduino está baseado)  está aqui.
Verifique que #include, de modo similar ao #define, não leva ponto e vírgula no final.

Exemplo

Este exemplo inclui uma biblioteca que é utilizada para armazenar dados na memória flash ao invés de na ram. Isto economiza espaço na ram para as necessidades de memória dinâmica e torna o uso de grandes tabelas mais prático.
#include 

prog_uint16_t myConstants[] PROGMEM = {0, 21140, 702  , 9128,  0, 25764, 8456,
0,0,0,0,0,0,0,0,29810,8968,29762,29762,4500};



0 comentários:

Postar um comentário