Escolar Documentos
Profissional Documentos
Cultura Documentos
BCC 425
Relativamente simples.
C é case sensitive!
contaPosicao, contaValorTotal
1 int resposta;
2 void espera(){
3 resposta = 0;
4 while (resposta != 255); // laço infinito
5 }
6
7 // após o processo de otimização do compilador
8
9 int reposta;
10 void espera(){
11 resposta = 0;
12 while (1); // laço infinito
13 }
Modificadores de Acesso
1 struct nomeDaEstrutura{
2 tipoDadoMembro_1 nomeMembro_1;
3 tipoDadoMembro_2 nomeMembro_2;
4 //...
5 tipoDadoMembro_n nomeMembro_n;
6 };
Estruturas Heterogêneas
1 struct Aluno{
2 char nome[50];
3 int matricula;
4 char conceito;
5 };
6
7 int main (){
8 struct Aluno aluno;
9 aluno.nome = "Joao";
10 aluno.matricula = 201711234;
11 aluno.conceito = ’A’;
12 // ...
13 }
Enumeradores
1 enum{
2 LABEL1 = VALOR1,
3 LABEL2 = VALOR2,
4 //...
5 LABELN = VALORN
6 };
1 enum{
2 AZUL = 1,
3 VERDE, // VERDE = AZUL + 1
4 VERMELHO = 4
5 };
6
7 // Alternativa com defines
8 #define AZUL 1
9 #define VERDE 2
10 #define VERMELHO 4
Definições de tipo
1 typedef struct {
2 unsigned char bit0:1;
3 unsigned char bit1:1;
4 unsigned char bit2:1;
5 unsigned char bit3:1;
6 unsigned char bit4:1;
7 unsigned char bit5:1;
8 unsigned char bit6:1;
9 unsigned char bit7:1;
10 unsigned char bit0:1;
11 }port;
12
13 // ...
14 port PORTA;
15 PORTA.bit0 = 1;
16 PORTA.bit1 = 0;
Álgebra Booleana
1 char A = 8;
2 // A = 0b00001000
3 char B = 5;
4 // B = 0b00000101
5 result = A && B;
6 // result = 1
Operação OU
Toma a decisão baseada em duas informações de
entrada.
1 char A = 8;
2 // A = 0b00001000
3 char B = 5;
4 // B = 0b00000101
5 result = A || B;
6 // result = 1
Outras Operações
1 char A = 8;
2 // A = 0b00001000
3 char B = 5;
4 // B = 0b00000101
5 result = (A && !B) || (!A && B);
6 // result = 1
7
8 // exemplo da porta OU-EXCLUSIVO
Bitwise NÃO
1 char A = 8; // 0b00001000
2 char B = 5; // 0b00000101
3 char r;
4 r = A & B;
5 // r = 0b00000000; r = 0
Bitwise OU
1 char A = 8; // 0b00001000
2 char B = 5; // 0b00000101
3 char r;
4 r = A | B;
5 // r = 0b00001101;
Operadores de Deslocamento
Sintaxe:
resultado = variavel >> vezes;
resultado = variavel << vezes;
Operadores de Deslocamento
1 char antes;
2 char depois;
3 antes = 0b10111001; //em complemento de 2
4 depois = antes >> 1;
5 // depois = 0b11011100;
6 // deslocamento de bits para a direita
(aritmético)
Manipulando apenas 1 bit de cada vez
1 if (expressao){
2 // comandos..
3 }
Estruturas Condicionais
1 if (expressao){
2 // comandos se expressão verdadeira
3 } else{
4 // comandos se expressão falsa
5 }
Estruturas Condicionais
1 if (expressao){
2 // lista de comandos se expressão for verdadeira
3 if (expressao2){
4 // lista de comandos se expressão 2 for
verdadeira
5 } else {
6 // lista de comandos se expressão 2 for falsa
7 }
8 } else{
9 // comandos se expressão for falsa
10 }
Estruturas Condicionais
switch ... case: para verificar diferentes valores de uma
mesma variável.
1 switch (variavel){
2 case 1:
3 //se variavel == 1
4 // lista de comandos
5 break;
6 case 2:
7 //se variavel == 2
8 // lista de comandos
9 break;
10 // ...
11 default:
12 //se variavel for diferente de todos os valores
anteriores
13 // lista de comandos default
14 break;
Estruturas de Repetição
1 while (condição){
2 // comandos...
3 }
1 do{
2 // comandos...
3 }while(condição);
Estruturas de Repetição - Rotinas de Tempo
1 unsigned char i;
2 for (i=0; i < 100; i++);
Funções
1 void main(void){
2 int soma = soma(2,2);
3 }
Referência