| Forfatter | Melding |
|---|
kirsebær
Registrert: 19. juli 2005 Innlegg: 3
| 25 august 2005 7:01 Funksjon Pekere i C | | |
|
| Hvor og i hvilke situasjoner vi kan bruke funksjonen pekere av C i Embedded?
Kan noen forklare?
Takk ..... Cherry |
|
| Tilbake til toppen | |
 |
IanP
Registrert: 05 oktober 2004 Innlegg: 6454 Hjalp: 1535 Sted: West Coast
| 25 august 2005 7:24 Re: Funksjon Pekere i C | | |
|
| | Sitat: | | Pekere til funksjoner er ikke så vanlig som andre peker bruker. Men en felles bruk er i en forbikjøring pekere til en funksjon som en parameter i en funksjon samtale. | http://www.cs.cf.ac.uk/Dave/C/node12.html Hilsen, IanP |
|
| Tilbake til toppen | |
 |
echo47
Registrert: 07 april 2002 Innlegg: 4206 Hjalp: 566
| 25 august 2005 8:13 Funksjon Pekere i C | | |
|
| | En annen vanlig program er en tilbakeringing funksjon. For eksempel, du vil at Windows skal ringe lyd opptaker funksjon hver gang Windows mottar noen eksempler fra mikrofonen. Du gir Windows en peker til lyd opptaker funksjon. |
|
| Tilbake til toppen | |
 |
sjakkmatt
Registrert: 26 februar 2004 Innlegg: 489 Hjalp: 35 Beliggenhet: Toalett sete
| 25 august 2005 13:23 Re: Funksjon Pekere i C | | |
|
| Funksjonspekere på er ikke ofte brukes i embedded C, mer for PC side programmering. I utgangspunktet er det en peker til en funksjon, og avhengig av hvilken funksjon pekeren peker til, kan du gjennomføre ulike funksjoner skal utføres på samme linje med kode.
Et eksempel på hvordan du bruker det er at du har en rekke funksjoner pekere som viser til meldingen handlers, hver av en annen melding type som er utformet for å holde den samme indeksen som meldingshåndtereren.
Slik at du kan ringe omtrent slik | Code: | fnPtr [msg-> type] (msg);
| [/ code]
Lagt til: En mulig bruk av funksjonen pekere i innebygde C, er en oppgave planleggingstjenesten. |
|
| Tilbake til toppen | |
 |
njfane
Registrert: 27. oktober 2004 Innlegg: 15
| 26 august 2005 11:00 Re: Funksjon Pekere i C | | |
|
| det er et godt valg for å erstatte bytte fall i en maskin ved hjelp av funksjonen peker, I tilfellet at staten maskinen har for mange slår tilfeller. Det gjør programmet mer kompakt. |
|
| Tilbake til toppen | |
 |
Bingo600
Registrert: 26. august 2004 Innlegg: 239 Hjalp: 14
| 27 august 2005 14:35 Funksjon Pekere i C | | |
|
| Dette er et fint dokument om emnet
http://www.newty.de/fpt/zip/e_fpt.pdf
http://www.newty.de/fpt/index.html
/ Bingo |
|
| Tilbake til toppen | |
 |
btbass
Registrert: 20. juli 2001 Innlegg: 1138 Hjalp: 106 Beliggenhet: Oberon
| 10 Sep 2005 15:21 Re: Funksjon Pekere i C | | |
|
| Funksjonspekere på er svært nyttig i innebygde systemer. Som et strømlinjeformet bytte setningen. Også svært nyttig i menyen systemer. Hvor menyelementet valgt er indeksen for en functon peker matrisen.
For eksempel, hver stat funksjon her returnerer neste tilstand for å bytte til. De styrende for hele programmet på én linje!
| Code: | /*--- State machine funksjoner. ---*/
UI_16 standby (void); UI_16 start (void); UI_16 kjører (void);
/*--- State Machine. ---*/
enum (STANDBY = 0, STARTENDE kjørte);
/************************************************* ******************** * Funksjon Navn: main * Beskrivelse: Program inngangspunktet. Initialise rekke konstant funksjonspekere på. Initialise statlig maskinen til standby. Execute statlig maskinen.
************************************************** *******************/
SI_16 main (void) ( UI_16 (* const Motor_State []) (void) = (standby starter, kjører); UI_16 State = STANDBY;
for (;;){ Staten = Motor_State [stat] (); / * ring state funksjon * / ) )
/*--- Slutten av filen. ---*/
|
|
|
| Tilbake til toppen | |
 |
raj_rohit10
Registrert: 14 juli 2004 Innlegg: 113 Hjalp: 1
| 13 Sep 2005 7:19 Re: Funksjon Pekere i C | | |
|
| hallo den beste bruken av funksjon pekeren hva jeg føler er implimentation av FSM og som det er sagt erlier 2dre man ringe tilbake funksjon. |
|
| Tilbake til toppen | |
 |
abhishek_elec
Registrert: 09 Sep 2005 Innlegg: 15 Hjalp: 1 Location: India
| 13 Sep 2005 12:42 Re: Funksjon Pekere i C | | |
|
| Funksjon tips er nyttig når u har en generalisert prosedyre eller algo og u ønsker å bruke denne fremgangsmåten på ulike typer data.
F.eks. Hvis u ha en god sortering algo og u vil bruke samme algo på tallene, alfabetisk, strenger eller noen data underlagt noen sortering regelen. I så fall, u må bare skrive en annerledes "sammenligne" funksjon for hver datatype og i hovedvisningen sortering algo, u passerer funksjonen pekeren som et argument. Denne måten, det samme algo kan brukes av forskjellige ppl i henhold til deres behov. Ingen endringer er nødvendig i Hoveddelen av algo. |
|
| Tilbake til toppen | |
 |
Google AdSense

| 13 Sep 2005 12:42 Ads | | |
|
|
|
|
| Tilbake til toppen | |
 |
yaseen
Registrert: 22 januar 2006 Innlegg: 9 Hjalp: 1
| 27 august 2006 9:33 Re: Funksjon Pekere i C | | |
|
| Jeg har currenlty brukt funksjonspekere på min C Project, som er på menyen drevet editor. Formålet med teser tips er å skrive en effektiv, kompakt og raskt koden. Min kode saple er her;
int Verdi [] = (0x1F00, / / Alt S (^ Setup) 0x1400, / / Alt T (^ badebukser) 0x1200, / / Alt E (^ Extensions) 0x1800, / / Alt O (^ Operatør) 0x2600, / / Alt L (^ Logging) 0x1900, / / Alt P (^ Passwords) 0x2200, / / Alt G (Settin ^ gs) 0x2300 / / Alt H (^ Hjelp) );
/ / ------ Pekere til funksjoner --------------------------------- void (* Execute [8 ])();// Hovedmeny funksjoner void (* Setup [3 ])();// menyelementet funksjoner void (* badebukser [9 ])(); void (* Extensions [4 ])(); void (* Operatørinnstillinger [3 ])(); void (* Logging [2 ])(); void (* Passord [3 ])(); void (* Settings [6 ])(); void (* Hjelp [10 ])(); //------------------------------------------------ ---------------
main () ( .... / / Initialiser funtion pekere Execute [0] = ProcessSetup; Execute [1] = ProcessTrunks; Execute [2] = ProcessExtensions; Execute [3] = ProcessOperator; Execute [4] = ProcessLogging; Execute [5] = ProcessPasswords; Execute [6] = ProcessSettings; Execute [7] = ProcessHelp; ......
/ / Les tastaturet ... i = bioskey (1); hvis (i) / / Hvis tastaturet klar ... nøkkel = bioskey (0); ellers continue; / / Hvis tastaturet ikke klar deretter fortsette å se det
/ / Execute menyen velges av brukeren for (j = 0; j <8; j ) ( if (nøkkel == Verdi [j]) ( if (! inProcess) ( inProcess = 1; Execute [J] (); ) ) else if (nøkkel == 0x2D00) / / Alt X trykket ... dvs. Quit return; ) .......... |
|
| Tilbake til toppen | |
 |