| Forfatter | Besked |
|---|
cherry
Tilsluttet: 19. juli 2005 Stillinger: 3
| 25 august 2005 7:01 Funktion Pegepinde i C | | |
|
| Hvor og i hvilke situationer, som vi kan bruge funktionen pointers af C i Embedded?
Kan nogen forklare det?
Thanks ..... Cherry |
|
| Tilbage til toppen | |
 |
IanP
Tilsluttet: 05 oktober 2004 Stillinger: 6454 Hjulpet: 1535 Beliggenhed: West Coast
| 25 august 2005 7:24 Re: Funktion Pegepinde i C | | |
|
| | Citat: | | Henvisninger til funktioner er ikke så almindeligt som andre pointer anvendelser. Men en fælles brug er i en forbikørsel henvisninger til en funktion som en parameter i en funktion opkald. | http://www.cs.cf.ac.uk/Dave/C/node12.html Hilsen, IanP |
|
| Tilbage til toppen | |
 |
echo47
Tilsluttet: 07 april 2002 Stillinger: 4206 Hjulpet: 566
| 25 august 2005 8:13 Funktion Pegepinde i C | | |
|
| | Et andet fælles program er en callback funktion. For eksempel, du vil have Windows til at ringe til din audio-optager funktion, hver gang Windows modtager nogle prøver fra mikrofonen. Du give Windows en pointer til dit audio-optager funktion. |
|
| Tilbage til toppen | |
 |
skakmat
Tilsluttet: 26. februar 2004 Posts: 489 Hjulpet: 35 Location: Toilet Seat
| 25 aug 2005 13:23 Re: Funktion Pegepinde i C | | |
|
| Funktion pointers er ikke ofte anvendes i indlejrede C, mere for PC side programmering. Dybest set er det en pointer til en funktion, og afhængigt af, hvilken funktion de pointeren peger på, kan du gennemføre forskellige funktioner, der skal udføres på samme linje kode.
Et eksempel måde at bruge det er, at du har en bred vifte af funktion pointers, hvilket peger på besked håndterer, hver af en anden besked type, som er designet til at holde den samme indeks som beskeden handling.
Så kan du kalde noget lignende | Code: | fnPtr [msg-> type] (msg);
| [/ code]
Tilføjet: En mulig brug af funktionen pointers i indlejrede C, er en opgave Scheduler. |
|
| Tilbage til toppen | |
 |
njfane
Tilsluttet: 27. oktober 2004 Stillinger: 15
| 26 aug 2005 11:00 Re: Funktion Pegepinde i C | | |
|
| det er et godt valg at erstatte skifte tilfældet i en tilstand maskine ved hjælp af funktionen pointer, i tilfælde af at state maskine har for mange skifte tilfælde. Det gør programmet mere kompakt. |
|
| Tilbage til toppen | |
 |
Google AdSense

| 26 aug 2005 11:00 Annoncer | | |
|
|
|
|
| Tilbage til toppen | |
 |
Bingo600
Tilsluttet: 26. august 2004 Stillinger: 239 Hjulpet: 14
| 27 aug 2005 14:35 Funktion Pegepinde i C | | |
|
| Dette er et pænt dokument om emnet
http://www.newty.de/fpt/zip/e_fpt.pdf
http://www.newty.de/fpt/index.html
/ Bingo |
|
| Tilbage til toppen | |
 |
btbass
Tilsluttet: 20. juli 2001 Stillinger: 1137 Hjulpet: 106 Beliggenhed: Oberon
| 10 sep 2005 15:21 Re: Funktion Pegepinde i C | | |
|
| Funktion henvisninger er meget nyttige i indlejrede systemer. Ligesom en strømlinet skifte erklæring. Også meget nyttig i menuen systemer. Når menupunktet valgt, er indekset for en functon pointeren array.
For eksempel hver stat funktion her returnerer næste tilstand for at skifte til. Den kontrollerende kode i et helt program i en linje!
| Code: | /*--- Stat maskinens funktioner. ---*/
UI_16 standby (void); UI_16 start (void); UI_16 kører (void);
/*--- State Machine. ---*/
enum (STANDBY = 0, UDGANGSSTOFFER, rindende);
/************************************************* ******************** * Funktion Navn: main * Beskrivelse: Program indgang. Initialiser array med konstant funktion pointers. Initialiser state maskine til standby. Execute state maskine.
************************************************** *******************/
SI_16 Main (void) ( UI_16 (* const Motor_State []) (void) = (standby, starter, kører); UI_16 stat = STANDBY;
for (;;){ State = Motor_State [stat] (); / * opkald state funktion * / ) )
/*--- Slut på filen. ---*/
|
|
|
| Tilbage til toppen | |
 |
raj_rohit10
Tilsluttet: 14. juli 2004 Stillinger: 113 Hjulpet: 1
| 13 Sep 2005 7:19 Re: Funktion Pegepinde i C | | |
|
| hej den bedst mulige udnyttelse af funktionspointer hvad jeg føler er implimentation af MFS og som det er fortalt erlier 2. ene er call back funktion. |
|
| Tilbage til toppen | |
 |
abhishek_elec
Tilmeldt: 09 Sep 2005 Stillinger: 15 Hjulpet: 1 Beliggenhed: Indien
| 13 sep 2005 12:42 Re: Funktion Pegepinde i C | | |
|
| Funktion henvisninger er nyttige, når u har en generel procedure eller algo og u ønsker at bruge denne procedure på forskellige typer af data.
For ex., Hvis u har en god sortering algo, og u vil bruge samme algo på numre, alfabetisk, strenge eller alle data er omfattet af nogle sortering reglen. I så fald, u skal bare skrive en anden "sammenligne"-funktionen for hver datatype og i hovedsagen sortering algo, u videregiver funktionspointer som et argument. Denne måde, det samme algo kan bruges af forskellige ppl i henhold til deres behov. Ingen ændringer er påkrævet i den dispositive algo. |
|
| Tilbage til toppen | |
 |
yaseen
Tilsluttet: 22. januar 2006 Stillinger: 9 Hjulpet: 1
| 27 august 2006 9:33 Re: Funktion Pegepinde i C | | |
|
| Jeg har currenlty bruges funktionen pointers i mit C Project, som er den menu drevet editor. Formålet med disse retningslinjer er at skrive en effektiv, kompakt og hurtig kode. Min kode saple er her;
int værdi [] = (0x1F00 / / Alt S (^ Setup) 0x1400 / / Alt T (^ trunke) 0x1200 / / Alt E (^ Extensions) 0x1800 / / Alt O (^ Operatør) 0x2600 / / Alt L (^ Logføring) 0x1900 / / Alt P (^ Passwords) 0x2200 / / Alt G (Settin ^ gs) 0x2300 / / Alt H (^ Hjælp) );
/ / ------ Pegepinde til funktioner --------------------------------- void (* Execute [8 ])();// Hovedmenu funktioner void (* Setup [3 ])();// menupunkt funktioner void (* trunke [9 ])(); void (* Extensions [4 ])(); void (* Operatør [3 ])(); void (* Logføring [2 ])(); void (* Passwords [3 ])(); void (* Indstillinger [6 ])(); void (* Hjælp [10 ])(); //------------------------------------------------ ---------------
vigtigste () ( .... / / Initialiser funktion pointers Execute [0] = ProcessSetup; Execute [1] = ProcessTrunks; Execute [2] = ProcessExtensions; Execute [3] = ProcessOperator; Execute [4] = ProcessLogging; Execute [5] = ProcessPasswords; Execute [6] = ProcessSettings; Execute [7] = ProcessHelp; ......
/ / Læs tastaturet ... i = bioskey (1); hvis (i) / / Hvis tastaturet klar ... adgangstast = bioskey (0); anden fortsætte; / / Hvis tastaturet ikke klar derefter fortsætte med at se det
/ / Execute menuen vælges af brugeren for (j = 0; j <8 j ) ( if (nøglen == værdi [j]) ( if (! inProcess) ( inProcess = 1; Execute [j] (); ) ) ellers hvis (nøglen == 0x2D00) / / Alt X presses ... dvs Afslut tilbagevenden; ) .......... |
|
| Tilbage til toppen | |
 |