Regels | Recent posts | onderwerp RSS | Zoeken | Registreren | Aanmelden

Functie Pointers in C



Post new topic Reply to topic EDAboard.com Forum Index -> PC-programmering en Interfacing -> Functie Pointers in C
Arabische versie Bulgaarse versie Catalaanse versie Tsjechische versie Deense versie Duitse versie Griekse versie Engels versie Spaanse versie Finse versie Franse versie Hindi versie Kroatische versie Indonesische versie Italiaanse versie Hebreeuwse versie Japanse versie Koreaanse versie Litouwse versie Letse versie Nederlandse versie Noorse versie Poolse versie Portugese versie Roemeense versie Russische versie Slowaakse versie Sloveense versie Servische versie Zweedse versie Tagalog versie Oekraïense versie Vietnamese versie Chinese versie
Auteur Bericht
cherry



Lid geworden: 19 juli 2005
Posten: 3


Post 25 augustus 2005 7:01 Function Pointers in C

Wanneer en in welke situaties kunnen wij gebruik van de C-functie pointers in Embedded?

Kan iemand uitleggen?

Bedankt ..... Cherry
Terug naar boven
View user's profile
IanP



Lid geworden: 05 oktober 2004
Berichten: 6454
Geholpen: 1535
Locatie: West Coast


Post 25 augustus 2005 7:24 Re: Functie Pointers in C

Citaat:
Pointers naar functies zijn niet zo algemeen als de andere aanwijzer gebruikt. Echter, een algemeen gebruik is in een passerende pointers naar een functie als parameter in een functie-oproep.

http://www.cs.cf.ac.uk/Dave/C/node12.html
Groeten,
IanP
Terug naar boven
View user's profile
echo47



Lid geworden: 07 april 2002
Berichten: 4206
Geholpen: 566


Post 25 augustus 2005 8:13 Function Pointers in C

Een andere veel voorkomende toepassing is een callback functie. Bijvoorbeeld, u wilt dat Windows om uw audio recorder functie telkens Windows ontvangt enkele monsters van de microfoon. Je geeft Windows een pointer naar uw audio recorder functie.
Terug naar boven
View user's profile
schaakmat



Lid geworden: 26 februari 2004
Posts: 489
Geholpen: 35
Locatie: Toilet Seat


Post 25 augustus 2005 13:23 Re: Functie Pointers in C

Functie pointers worden niet vaak gebruikt in embedded C, meer voor de PC zijde programmering. Kortom, het is een pointer naar een functie en afhankelijk van welke functie de aanwijzer punten, kunt u de uitvoering van verschillende functies kunnen worden uitgevoerd in dezelfde regel code.

Een voorbeeld van het gebruik ervan is dat je een array van functie pointers, die wijst op bericht behandelaars, elk van een ander type bericht dat is ontworpen om dezelfde index als het bericht handler.

Dus je kunt bellen als er iets
Code:

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

Toegevoegd:
Een mogelijk gebruik van de functie pointers in embedded C, is een taak scheduler.
Terug naar boven
View user's profile
Google
AdSense





Post 25 augustus 2005 13:23 advertenties



Terug naar boven
njfane



Lid geworden: 27 oktober 2004
Posts: 15


Post 26 augustus 2005 11:00 Re: Functie Pointers in C

het is een goede keuze te vervangen switch geval in een state machine met behulp van functie-pointer,
in het geval dat state machine heeft te veel switch gevallen. maakt het programma compacter.
Terug naar boven
View user's profile
Bingo600



Lid geworden: 26 augustus 2004
Posts: 239
Geholpen: 14


Post 27 augustus 2005 14:35 Function Pointers in C

Dit is een mooi document over het onderwerp

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

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

/ Bingo
Terug naar boven
View user's profile
btbass



Lid geworden: 20 juli 2001
Posts: 1138
Geholpen: 106
Locatie: Oberon


Post 10 Sep 2005 15:21 Re: Functie Pointers in C

Functie pointers zijn zeer nuttig in embedded systemen. Net als een gestroomlijnde switch statement. Ook zeer nuttig in het menu systemen. Wanneer de geselecteerde menu-item is de index van een functon aanwijzer array.

Bijvoorbeeld, elke functie staat hier geeft het volgende staat om te schakelen is.
De controlerende code voor een heel programma in een lijn!

Code:

/*--- State machine functies. ---*/

UI_16 standby (void);
UI_16 beginnen (void);
UI_16 draait (void);

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

enum (STANDBY = 0, UITGANGSSTOFFEN, RUNNING);

/************************************************* ********************
* Functie Naam: main
* Beschrijving: Programma toegangspunt.
Array initialiseren van constante functie pointers.
Initialiseren state machine naar stand-by.
Execute state machine.

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

SI_16 main (void)
(
UI_16 (* const Motor_State []) (void) (= stand-by, te beginnen, draait);
UI_16 State = STANDBY;


voor (;;){
Staat = Motor_State [staat] (); / * oproep staat functie * /
)
)

/*--- Einde van bestand. ---*/
Terug naar boven
View user's profile
raj_rohit10



Lid geworden: 14 juli 2004
Posts: 113
Geholpen: 1


Post 13 Sep 2005 7:19 Re: Functie Pointers in C

hallo
optimaal gebruik van de functie pointer wat ik voel is de implimentation van de FSM en als het wordt verteld erlier 2e is een call-back-functie.
Terug naar boven
View user's profile
abhishek_elec



Lid geworden: 09 Sep 2005
Posts: 15
Geholpen: 1
Locatie: India


Post 13 Sep 2005 12:42 Re: Functie Pointers in C

Functie pointers zijn handig wanneer u een algemene procedure of algo en u gebruik wilt maken van deze procedure op de verschillende soorten gegevens.

Voor ex. Indien u over een goede sortering algo, en u wilt gebruiken op dezelfde algo nummers, alfabetisch, strijkers of alle gegevens die door sommige sortering regel. In dat geval, u moet gewoon een andere "vergelijken" functie voor elk type en de gegevens in de belangrijkste sortering algo, u passeert de functie pointer als argument.
Op deze manier kan dezelfde algo kan worden gebruikt door verschillende ppl afhankelijk van hun behoefte. Geen enkele wijziging nodig is in het hoofddeel van algo.
Terug naar boven
View user's profile
yaseen



Lid geworden: 22 januari 2006
Posten: 9
Geholpen: 1


Post 27 augustus 2006 9:33 Re: Functie Pointers in C

Ik heb currenlty gebruikt de functie pointers in mijn C-project, dat is het menu gestuurde editor. Het doel van deze aanwijzingen is het schrijven van een efficiënte, compacte en snelle code. Mijn code saple is hier;

Prijs int [] = (0x1F00 / / Alt S (^ Setup)
0x1400, / / Alt T (^ Hutkoffers)
0x1200, / / Alt E (^ Extensions)
0x1800, / / Alt O (^ Operator)
0x2600, / / Alt L (^ Logboekregistratie)
0x1900, / / Alt P (^ Wachtwoorden)
0x2200, / / Alt G (Settin ^ gs)
0x2300 / / Alt H (^ Help)
);

/ / ------ Pointers naar functies ---------------------------------
void (* Execute [8 ])();// Main Menu functies
void (* Setup [3 ])();// Menu Item functies
void (* Hutkoffers [9 ])();
void (* Extensions [4 ])();
void (* Operator [3 ])();
void (* Logging [2 ])();
void (* Wachtwoorden [3 ])();
void (* Instellingen [6 ])();
void (* Help [10 ])();
//------------------------------------------------ ---------------

main ()
(
....
/ / Initialiseer functies pointers
Uitvoeren [0] = ProcessSetup;
Voeren [1] = ProcessTrunks;
Execute [2] = ProcessExtensions;
Voeren [3] = ProcessOperator;
Voeren [4] = ProcessLogging;
Voeren [5] = ProcessPasswords;
Voeren [6] = ProcessSettings;
Voeren [7] = ProcessHelp;
......

/ / Lees het toetsenbord ...
i = bioskey (1);
if (i) / / Als toetsenbord klaar ...
key = bioskey (0);
anders
blijven; / / Als het toetsenbord niet klaar dan verder kijken

/ / Voer het menu geselecteerd door de gebruiker
for (j = 0; j <8; j )
(
if (key == Prijs [j])
(
if (! inProcess)
(
inProcess = 1;
Execute [J] ();
)
)
else if (key == 0x2D00) / / Alt X ingedrukt ... dwz Quit
terugkeer;
)
..........
Terug naar boven
View user's profile
Post new topic Reply to topic EDAboard.com Forum Index -> PC-programmering en Interfacing -> Functie Pointers in C
Pagina 1 van 1 Alle tijden zijn GMT 2 Hours


Misbruik | | Administrator | | Moderatoren | | Steun ons | | sitemap
onderwerp RSS