| Autore | Messaggio |
|---|
ciliegia
Iscritto il: 19 luglio 2005 Interventi: 3
| 25 agosto 2005 7:01 Funzione Puntatori in C | | |
|
| Dove e in quali situazioni si può utilizzare la funzione di puntatori in C Embedded?
Qualcuno può spiegare?
Grazie ..... Ciliegio |
|
| Torna a inizio pagina | |
 |
IanP
Iscritto il: 05 ottobre 2004 Interventi: 6454 Aiutato: 1535 Località: West Coast
| 25 agosto 2005 7:24 Re: Funzione Puntatori in C | | |
|
| | Citazione: | | Puntatori a funzioni non sono così comuni come il puntatore altri usi. Tuttavia, un uso comune è in un passaggio puntatori a una funzione come un parametro in una chiamata di funzione. | http://www.cs.cf.ac.uk/Dave/C/node12.html Saluti, IanP |
|
| Torna a inizio pagina | |
 |
echo47
Iscritto il: 07 aprile 2002 Interventi: 4206 Contribuito: 566
| 25 agosto 2005 8:13 Funzione Puntatori in C | | |
|
| | Un'altra applicazione è una comune funzione di callback. Ad esempio, si desidera che Windows per chiamare la funzione di registratore audio di Windows ogni volta che riceve alcuni campioni dal microfono. Si danno di Windows un puntatore a funzione registratore audio. |
|
| Torna a inizio pagina | |
 |
Google AdSense

| 25 agosto 2005 8:13 Annunci | | |
|
|
|
|
| Torna a inizio pagina | |
 |
scacco matto
Iscritto il: 26 febbraio 2004 Interventi: 489 Contribuito: 35 Ubicazione: WC Seat
| 25 agosto 2005 13:23 Re: Funzione Puntatori in C | | |
|
| Funzione di puntatori non sono spesso utilizzati in embedded C, più di programmazione per PC. Fondamentalmente, si tratta di un puntatore a una funzione, e a seconda di quale funzione il puntatore punti, è possibile attuare diverse funzioni per essere eseguiti nella stessa riga di codice.
Un esempio del modo di usarlo è che hai un array di puntatori funzione, che punti al messaggio che praticano, ciascuna di un diverso tipo di messaggio che è stato progettato per mantenere lo stesso indice di come la gestione dei messaggi.
Quindi, è possibile chiamare qualcosa di simile | Codice: | fnPtr [MSG-> tipo] (msg);
| [/ code]
Aggiunto: Una possibile utilizzare la funzione di puntatori incorporati C, è un compito programmatore. |
|
| Torna a inizio pagina | |
 |
njfane
Iscritto il: 27 ottobre 2004 Interventi: 15
| 26 agosto 2005 11:00 Re: Funzione Puntatori in C | | |
|
| è una buona scelta per sostituire passare in uno stato macchina utilizzando la funzione puntatore, nel caso che la macchina è stato passare troppi casi. programma rende più compatta. |
|
| Torna a inizio pagina | |
 |
Bingo600
Iscritto il: 26 agosto 2004 Interventi: 239 Contribuito: 14
| 27 agosto 2005 14:35 Funzione Puntatori in C | | |
|
| Questo è un buon documento sul tema
http://www.newty.de/fpt/zip/e_fpt.pdf
http://www.newty.de/fpt/index.html
/ Bingo |
|
| Torna a inizio pagina | |
 |
btbass
Iscritto il: 20 luglio 2001 Interventi: 1137 Contribuito: 106 Ubicazione: Oberon
| 10 set 2005 15:21 Re: Funzione Puntatori in C | | |
|
| Funzione puntatori sono molto utili in sistemi embedded. Come un razionalizzato switch. Molto utile anche nel menu sistemi. Se la voce del menu selezionato è l'indice di un array functon puntatore.
Ad esempio, ogni Stato funzione qui ritorna il prossimo Stato a passare. Il codice di controllo per un intero programma in una riga!
| Codice: | /*--- Stato le funzioni della macchina. ---*/
UI_16 standby (void); UI_16 partenza (void); UI_16 esecuzione (void);
/*--- State Machine. ---*/
enum (STANDBY = 0, a partire, in esecuzione);
/************************************************* ******************** * Funzione Nome: principali * Descrizione: Programma di punto di ingresso. Inizializza array di puntatori funzione costante. Inizializza stato della macchina in modalità standby. Eseguire stato macchina.
************************************************** *******************/
SI_16 main (void) ( UI_16 (* const Motor_State []) (void) = (standby, a partire, in esecuzione); STANDBY = UI_16 membro;
per (;;){ = Motor_State Stato [membro] (); / * chiamata funzione di stato * / ) )
/*--- Fine del file. ---*/
|
|
|
| Torna a inizio pagina | |
 |
raj_rohit10
Iscritto il: 14 luglio 2004 Interventi: 113 Contribuito: 1
| 13 Set 2005 7:19 Re: Funzione Puntatori in C | | |
|
| ciao il miglior uso della funzione puntatore quello che sento è la implimentation del FSM e come si è detto erlier 2a uno è chiamata la funzione. |
|
| Torna a inizio pagina | |
 |
abhishek_elec
Iscritto il: 09 Set 2005 Interventi: 15 Contribuito: 1 Località: India
| 13 Set 2005 12:42 Re: Funzione Puntatori in C | | |
|
| Funzione puntatori sono utili quando si ha un u generalizzate o algo e u desidera utilizzare questa procedura su diversi tipi di dati.
Per es., Se u avere un buon algoritmo di smistamento, e u desidera utilizzare stesso algo sui numeri, in ordine alfabetico, di tutti i dati o stringhe disciplinate da alcuni cernita regola. In tal caso, e sono ad appena scrivere un altro "confrontare" la funzione per ogni tipo di dati e nei principali algo cernita, e passerà la funzione come argomento un puntatore. In questo modo, lo stesso algoritmo può essere utilizzato da diversi ppl in base alle loro necessità. Nessuna modifica è necessaria nel corpo principale del algo. |
|
| Torna a inizio pagina | |
 |
yaseen
Iscritto il: 22 gennaio 2006 Interventi: 9 Contribuito: 1
| 27 agosto 2006 9:33 Re: Funzione Puntatori in C | | |
|
| Ho usato la funzione currenlty puntatori C nel mio progetto, che è l'editor di menu. Lo scopo di questi indicatori è quella di scrivere un efficiente, compatto e veloce codice. Il mio codice saple è qui;
Rapporto int [] = (0x1F00, / / Alt S (^ installazione) 0x1400, / / Alt T (^ Bauli) 0x1200, / / Alt E (^ estensioni) 0x1800, / / Alt O (^ Operatore) 0x2600, / / Alt L (^ Logging) 0x1900, / / Alt P (^ Password) 0x2200, / / Alt G (Settin ^ gs) 0x2300 / / Alt H (^ Guida) );
/ / ------ Puntatori a funzioni --------------------------------- void (* Execute [8 ])();// Main Menu funzioni void (* il programma di installazione [3 ])();// Voce di menu funzioni void (* Bauli [9 ])(); void (* Estensioni [4 ])(); void (* Operatore [3 ])(); void (* Registrazione [2 ])(); void (* Password [3 ])(); void (* Impostazioni [6 ])(); void (* Aiuto [10 ])(); //------------------------------------------------ ---------------
main () ( .... / / Initialize funzione puntatori Execute [0] = ProcessSetup; Eseguire [1] = ProcessTrunks; Eseguire [2] = ProcessExtensions; Eseguire [3] = ProcessOperator; Eseguire [4] = ProcessLogging; Eseguire [5] = ProcessPasswords; Eseguire [6] = ProcessSettings; Eseguire [7] = ProcessHelp; ......
/ / Leggi la tastiera ... i = bioskey (1); se (i) / / Se la tastiera pronto ... key = bioskey (0); altro continuare; / / Se la tastiera non è pronto poi continuare a guardare lo
/ / Esegue il menu selezionato da un utente for (j = 0; j <8; j ) ( if (tasto == Rapporto [j]) ( if (! inProcess) ( inProcess = 1; Eseguire [j] (); ) ) else if (key == 0x2D00) / / Alt X premuto ... cioè Chiudere andata e ritorno; ) .......... |
|
| Torna a inizio pagina | |
 |