Regras | Mensagens recentes | tópico RSS | Pesquisar | Registar | Entrar

Função Ponteiros em C



Post new topic Reply to topic EDAboard.com Fórum Índice -> Programação e PC Interfacing -> Função Ponteiros em C
Versão árabe Versão búlgara Versão catalã Versão checa Versão dinamarquesa Versão alemã Versão grega Versão Inglês Versão espanhola Versão finlandesa Versão francesa Hindi versão Croatian version Indonésio versão Versão italiana Hebraico versão Versão japonesa Versão coreana Versão lituana Versão letã Versão neerlandesa Versão norueguesa Polonês versão Versão Português Romanian version Versão russa Versão eslovaca Versão eslovena Serbian version Versão sueca Tagalog versão Ucraniano versão Vietnamita versão Versão chinesa
Autor Mensagem
cereja



Joined: 19 jul 2005
Posts: 3


Post 25 ago 2005 7:01 Função Ponteiros em C

Quando e em que situações é que podemos utilizar ponteiros de função em C Embedded?

Alguém pode explicar?

Obrigado ..... Cherry
Voltar ao topo
View user's profile
IanP



Joined: 05 out 2004
Posts: 6454
Ajudado: 1535
Localização: Costa Ocidental


Post 25 ago 2005 7:24 Re: Função Ponteiros em C

Citação:
Ponteiros para funções não são tão comuns como ponteiro outras utilizações. No entanto, uma utilização comum está em uma passagem ponteiros para uma função como um parâmetro em uma chamada de função.

http://www.cs.cf.ac.uk/Dave/C/node12.html
Atenciosamente,
IanP
Voltar ao topo
View user's profile
echo47



Joined: 07 abr 2002
Posts: 4206
Ajudado: 566


Post 25 ago 2005 8:13 Função Ponteiros em C

Outra aplicação comum é uma função chamada. Por exemplo, você deseja que o Windows para ligar o seu gravador de áudio função cada vez Windows recebe algumas amostras do microfone. Você dá um ponteiro do Windows para o seu gravador de áudio função.
Voltar ao topo
View user's profile
xeque-mate



Joined: 26 fev 2004
Lugares: 489
Ajudado: 35
Localização: Toilet Seat


Post 25 ago 2005 13:23 Re: Função Ponteiros em C

Função ponteiros não são frequentemente utilizados em embutidos C, mais para o PC lateral programação. Basicamente, é um ponteiro para uma função e, dependendo de qual o ponteiro aponta para funcionar, você pode executar diferentes funções a serem executadas na mesma linha do código.

Um exemplo da forma como utilizá-lo é que você tem um array de ponteiros função, o que aponta para a mensagem tratadores, cada um dos diferentes tipo de mensagem que está concebido para manter o mesmo índice, enquanto a mensagem manipulador.

Então, você pode chamar qualquer coisa como
Código:

fnPtr [msg-> tipo] (msg);
[/ code]

Adicionado:
Uma possível utilização de ponteiros em função embutida C, é uma tarefa scheduler.
Voltar ao topo
View user's profile
njfane



Joined: 27 out 2004
Lugares: 15


Post 26 ago 2005 11:00 Re: Função Ponteiros em C

é uma boa escolha para substituir switch caso em um estado máquina utilizando função ponteiro,
Nos casos em que estado máquina tem demasiados casos interruptor. torna programa mais compacto.
Voltar ao topo
View user's profile
Bingo600



Joined: 26 ago 2004
Lugares: 239
Ajudado: 14


Post 27 ago 2005 14:35 Função Ponteiros em C

Este é um bom documento sobre o assunto

http://www.newty.de/fpt/zip/e_fpt.pdf

http://www.newty.de/fpt/index.html

/ Bingo
Voltar ao topo
View user's profile
btbass



Joined: 20 jul 2001
Posts: 1137
Ajudado: 106
Localização: Oberon


Post 10 Sep 2005 15:21 Re: Função Ponteiros em C

Função ponteiros são muito úteis em sistemas embebidos. Como mudar uma declaração simplificada. Também é muito útil no menu sistemas. Se o item do menu seleccionado é o índice de um functon ponteiro array.

Por exemplo, cada estado aqui função retorna o estado para mudar para o próximo.
O código para controlar um programa inteiro em uma linha!

Código:

/*--- Estado máquina funções. ---*/

UI_16 espera (void);
UI_16 iniciar (void);
UI_16 executando (void);

/*--- State Machine. ---*/

enum (STANDBY = 0, INICIADORAS, RUNNING);

/************************************************* ********************
* Função Nome: main
* Descrição: Programa entrada ponto.
Inicializar array de constante função ponteiros.
Inicializar a máquina estatal espera.
Executa estado máquina.

************************************************** *******************/

SI_16 main (void)
(
UI_16 (* const Motor_State []) (void) = (repouso, iniciando, executando);
UI_16 Estado = STANDBY;


para (;;){
Estado = Motor_State [Estado] (); / * chamada estado função * /
)
)

/*--- Fim do arquivo. ---*/
Voltar ao topo
View user's profile
Google
AdSense





Post 10 Sep 2005 15:21 Anúncios



Voltar ao topo
raj_rohit10



Joined: 14 jul 2004
Lugares: 113
Ajudado: 1


Post 13 Sep 2005 7:19 Re: Função Ponteiros em C

Olá
o melhor uso da função ponteiro o que eu sinto é o implimentation do FSM e, como é dito erlier 2o uma função é chamada de volta.
Voltar ao topo
View user's profile
abhishek_elec



Joined: 09 Set 2005
Lugares: 15
Ajudado: 1
Localização: Índia


Post 13 Sep 2005 12:42 Re: Função Ponteiros em C

Função ponteiros são úteis quando u tem um processo ou algo generalizado e u querer usar este procedimento em diferentes tipos de dados.

Por ex., Se u tem uma boa triagem algo, e u quiser usar mesmo algo em números, por ordem alfabética, cordas ou quaisquer dados regida por alguns triagem regra. Nesse caso, e apenas têm de escrever um diferente "comparar" função de cada tipo de dados e nos principais triagem algo, e vai passar o ponteiro função como um argumento.
Desta forma, o mesmo pode ser utilizado por algo diferente ppl de acordo com sua necessidade. Nenhuma modificação é necessária no corpo principal de algo.
Voltar ao topo
View user's profile
Yaseen



Joined: 22 jan 2006
Posts: 9
Ajudado: 1


Post 27 ago 2006 9:33 Re: Função Ponteiros em C

Eu tenho usado a função currenlty ponteiros no meu projecto C, que é o menu impulsionado editor. O objectivo destas indicações está a escrever uma eficiente, compacto e rápido código. Meu código saple está aqui;

int valor [] = (0x1F00, / / Alt S (^ Instalação)
0x1400, / / Alt T (^ Baús)
0x1200, / / Alt E (^ Extensions)
0x1800, / / Alt O (^ Operador)
0x2600, / / Alt L (^ Logging)
0x1900, / / Alt P (^ Senhas)
0x2200, / / Alt G (^ Settin gs)
0x2300 / / Alt H (^ Ajuda)
);

/ / ------ Ponteiros para funções ---------------------------------
void (* Execute [8 ])();// Menu Principal funções
void (* Instalação [3 ])();// Menu Item funções
void (* Baús [9 ])();
void (* Extensões [4 ])();
void (* Operador [3 ])();
void (* Log [2 ])();
void (* Senhas [3 ])();
void (* Definições [6 ])();
void (* Ajuda [10 ])();
//------------------------------------------------ ---------------

main ()
(
....
/ / Initialize funtion ponteiros
Execute [0] = ProcessSetup;
Execute [1] = ProcessTrunks;
Execute [2] = ProcessExtensions;
Execute [3] = ProcessOperator;
Execute [4] = ProcessLogging;
Execute [5] = ProcessPasswords;
Execute [6] = ProcessSettings;
Execute [7] = ProcessHelp;
......

/ / Ler o teclado ...
i = bioskey (1);
se (i) / / Se teclado pronto ...
key = bioskey (0);
diferente
continuar; / / Se teclado não está pronta, em seguida, continuar assistindo

/ / Executar o menu selecionado pelo usuário
for (j = 0; j <8; j )
(
if (tecla == valor [j])
(
if (! inProcess)
(
inProcess = 1;
Execute [j] ();
)
)
else if (tecla == 0x2D00) / / Alt X pressionado ... ou seja Sair
retorno;
)
..........
Voltar ao topo
View user's profile
Post new topic Reply to topic EDAboard.com Fórum Índice -> Programação e PC Interfacing -> Função Ponteiros em C
Página 1 de 1 Todos os horários são GMT 2 Horas


Abuso | | Administrador | | Moderadores | | Suporte-nos | | sitemap
Topic RSS