Regler | Recent posts | emne RSS | Søg | Registrer | Log ind

Funktion Pegepinde i C



Post new topic Reply to topic EDAboard.com Forum Indeks -> PC Programmering og grænseflade -> Funktion Pegepinde i C
Arabisk Bulgarsk Catalanske udgave Tjekkisk Dansk version Tysk version Græsk Engelsk version Spanske version Finsk Fransk version Hindi version Kroatisk version Indonesiske version Italiensk version Hebraisk udgave Japanske version Koreanske version Litauisk Lettisk version Hollandsk version Norsk version Polsk Portugisiske udgave Rumænske version Russian version Slovakisk Slovensk Serbisk version Svensk version Tagalog version Ukrainsk version Vietnamesisk version Kinesiske version
Forfatter Besked
cherry



Tilsluttet: 19. juli 2005
Stillinger: 3


Post 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
View user's profile
IanP



Tilsluttet: 05 oktober 2004
Stillinger: 6454
Hjulpet: 1535
Beliggenhed: West Coast


Post 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
View user's profile
echo47



Tilsluttet: 07 april 2002
Stillinger: 4206
Hjulpet: 566


Post 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
View user's profile
skakmat



Tilsluttet: 26. februar 2004
Posts: 489
Hjulpet: 35
Location: Toilet Seat


Post 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
View user's profile
njfane



Tilsluttet: 27. oktober 2004
Stillinger: 15


Post 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
View user's profile
Google
AdSense





Post 26 aug 2005 11:00 Annoncer



Tilbage til toppen
Bingo600



Tilsluttet: 26. august 2004
Stillinger: 239
Hjulpet: 14


Post 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
View user's profile
btbass



Tilsluttet: 20. juli 2001
Stillinger: 1137
Hjulpet: 106
Beliggenhed: Oberon


Post 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
View user's profile
raj_rohit10



Tilsluttet: 14. juli 2004
Stillinger: 113
Hjulpet: 1


Post 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
View user's profile
abhishek_elec



Tilmeldt: 09 Sep 2005
Stillinger: 15
Hjulpet: 1
Beliggenhed: Indien


Post 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
View user's profile
yaseen



Tilsluttet: 22. januar 2006
Stillinger: 9
Hjulpet: 1


Post 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
View user's profile
Post new topic Reply to topic EDAboard.com Forum Indeks -> PC Programmering og grænseflade -> Funktion Pegepinde i C
Side 1 af 1 Alle tidspunkter er GMT 2 timer


Misbrug | | Administrator | | Moderatorer | | Støt os | | sitemap
topic RSS