Página 1 de 1
FIFO ( push, pop, peek, reset, init )

Enviado:
28 Fev 2007 17:18
por andre_luis
Pessoal,
Estou trabalhando com um kit de funcoes de manipulacao de dados com acesso do tipo FIFO.
Só que a única função acima que eu não entendi a finalidade é Peek.
Alguem poderia explicar conceitualmente a finalidade desta função ?
Muito obrigado.
Re: FIFO ( push, pop, peek, reset, init )

Enviado:
01 Mar 2007 13:45
por andre_luis
Aproveitando a oportunidade, tenho outra dúvida conceitual em 'C' :
Alguem sabe explicar o significado dos 2 asteriscos ( ** ) no protótipo da função abaixo ?
extern BOOL peekFifo##fcn_name( FIFO_##type * pfifo, DWORD dwPos, type** ppValue ) ;

Enviado:
01 Mar 2007 22:12
por Maurício
Fala, André.
Dois asteriscos significa ponteiro de um ponteiro, ou seja, essa variável guarda o endereço de um outro ponteiro.
Em C, vc pode ter ponteiros de ponteiros de ponteiros de ponteiros de ponteiros, e por aí vai.
Basta aumentar a quantidade de asteriscos.
Na prática, não sei pra que serve porque eu ainda não precisei usar isso.
Codificado, ficaria dessa maneira:
- Código: Selecionar todos
int a, *b, **c;
a = 10;
b = &a;
c = &b;
**c = 20; // aqui, o valor da variável "a" será de 20, usando INDIREÇÃO
(???)
[]'s
RETI.

Enviado:
01 Mar 2007 23:22
por Renie
Olá André!
Sendo repetitivo, não uso C ( nem em PC nem em uC, nunca usei, só
tento ajudar pelo que já ví em algum lugar ou por palpite/dedução! )
Já que o Mauríco respondeu a questão do "* *", que eu não saberia
mesmo, e ninguém respondeu ao PEEK, vai minha idéia:
PEEK é posicionar, em Basic do TK85, Sinclair, TRS80, Commodore, e outros que usavam PEEK na mesma época, PEEK era para ler um
determinado endereço de memória, em PASCAL, o PEEK é para
posicionar também, mas, não só para ler como para gravar, apenas
posicionava em um ponto de um arquivo, o comando seguinte poderia
ler ou gravar (neste caso era para arquivos).
Como não conheço a sintaxe do comando e seus parâmetros, o exposto
acima deve ajudar!

Enviado:
02 Mar 2007 09:51
por andre_luis
Obrigado maurício,
Realmente, o 'C' tem recursos fascinantes, e esse é mais um que acabei de aprender
Obrigado Renie,
Realmente, o que eu suspetava era que esse Peek fosse uma leitura, sem alteração no estado da pilha.

Enviado:
02 Mar 2007 19:19
por ivan
Imagina a seguinte situação:
int *fa = &funcaoA(parmsFunc){....};
int *fb = &funcaoB(parmsFunc){....};
int *fc = &funcaoC(parmsFunc){....};
int **ptrMatrix[3];
ptrMatrix[0] = &fa;
ptrMatrix[1] = &fb;
ptrMatrix[2] = &fc;
Caso vc receba uma variavel com valores entre 0 e 2 e queira fazer chamadas de função sem fazer if's ou switch's, por exemplo, mantendo o seu pgm modular.
OBS: A sintaxe não é essa mas tô sem saco de escrever certo. O importante é o conceito.

Enviado:
05 Mar 2007 09:37
por andre_luis
ivan escreveu: Caso vc receba uma variavel com valores entre 0 e 2 e queira fazer chamadas de função sem fazer if's ou switch's, por exemplo, mantendo o seu pgm modular.
Sensacional !!
Mas isso é padrão ANSI ? Pois eu creio que nem todos os compiladores possuem a capacidade de usar ponteiro para funcoes. Segundo li no Help do CCS, acho que ele não faz isso para uC PIC's, ou estou enganado ?
Brigado....
+++

Enviado:
05 Mar 2007 19:46
por ivan
padrão ANSI!