Regeln | Neue Beiträge | Thema RSS | Suche | Registrieren | Log-in

Funktion Zeiger in C



Post new topic Reply to topic EDAboard.com Foren-Übersicht -> PC-Programmierung und Anbindung -> Funktion Zeiger in C
Arabische Fassung Bulgarische Version Katalanischen Version Tschechische Version Dänische Fassung Deutsch Version Griechische Fassung Englisch Version Spanische Version Finnische Fassung Französische Version Hindi-Version Kroatische Version Indonesisch-Version Italienische Version Hebräisch-Version Japanische Version German Version Litauische Fassung Lettische Fassung Niederländische Fassung Norwegische Version Polnische Fassung Portugiesische Version Romanian version Russische Version Slowakische Fassung Slowenisch-Version Serbisch-Version Schwedische Version Tagalog Version Ukrainisch Version Vietnamesisch-Version Chinesische Version
Autor Nachricht
Kirsche



Beitritt: 19. Jul 2005
Beiträge: 3


Post 25 Aug 2005 7:01 Funktion Zeiger in C

Wo und in welchen Situationen können wir Hinweise Funktion von C in Embedded?

Kann jemand erklären?

Dank ..... Cherry
Zurück zum Anfang
View user's profile
IanP



Joined: 05 Oct 2004
Beiträge: 6454
Geholfen: 1535
Lage: West Coast


Post 25 Aug 2005 7:24 Re: Function Pointer in C

Zitat:
Zeiger auf Funktionen sind nicht so häufig wie andere Zeiger verwendet. Jedoch eine gemeinsame Nutzung ist in der Weitergabe Zeiger auf eine Funktion als Parameter in einem Funktionsaufruf.

http://www.cs.cf.ac.uk/Dave/C/node12.html
Grüße,
IanP
Zurück zum Anfang
View user's profile
echo47



Joined: 07 Apr 2002
Beiträge: 4206
Geholfen: 566


Post 25 Aug 2005 8:13 Funktion Zeiger in C

Ein weiteres gemeinsames Programm ist eine Callback-Funktion. Zum Beispiel, wenn Sie wollen, um Ihre Windows-Audio-Recorder-Funktion bei jedem Windows erhält einige Beispiele aus dem Mikrofon. Sie geben Windows ein Zeiger auf Ihre Audio-Recorder-Funktion.
Zurück zum Anfang
View user's profile
Matt



Beitritt: 26. Feb 2004
Beiträge: 489
Geholfen: 35
Lage: WC-Sitz


Post 25 Aug 2005 13:23 Re: Function Pointer in C

Funktionszeiger sind nicht häufig in Embedded C, mehr für die PC-Seite Programmierung. Im Grunde ist es ein Zeiger auf eine Funktion, und je nachdem, welche Funktion der Zeiger verweist, können Sie die verschiedenen Funktionen, die ausgeführt werden soll in der gleichen Zeile Code.

Ein Beispiel mit der Art und Weise ist es, dass Sie eine Reihe von Zeiger-Funktion, die auf Nachrichten-Handler, die jeweils eine andere Art, die Botschaft ist, den gleichen Index wie die Nachricht gesendet.

So können Sie so etwas wie
Code:

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

Hinzugefügt:
Eine mögliche Anwendung der Funktionszeiger in Embedded C, ist ein taskscheduler.
Zurück zum Anfang
View user's profile
Google
AdSense





Post 25 Aug 2005 13:23 Anzeigen



Zurück zum Anfang
njfane



Joined: 27 Oct 2004
Beiträge: 15


Post 26 Aug 2005 11:00 Re: Function Pointer in C

Es ist eine gute Wahl, um es zu ersetzen Schalter in einen Zustand Maschine mit der Funktion Zeiger,
Für den Fall, dass staatliche Maschine hat zu viele Schalter Fällen. Es macht Programm kompakter.
Zurück zum Anfang
View user's profile
Bingo600



Beitritt: 26. Aug 2004
Beiträge: 239
Geholfen: 14


Post 27 Aug 2005 14:35 Funktionszeiger in C

Dies ist ein nettes Dokument zu diesem Thema

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

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

/ Bingo
Zurück zum Anfang
View user's profile
btbass



Beitritt: 20. Jul 2001
Beiträge: 1137
Geholfen: 106
Lage: Oberon


Post 10 Sep 2005 15:21 Re: Function Pointer in C

Funktion Hinweise sind sehr nützlich, in eingebetteten Systemen. Wie ein gestrafft switch-Anweisung. Auch sehr nützlich, in dem Menü-Systeme. Wird der Menüpunkt ausgewählt ist der Index einer functon Zeiger Array.

Zum Beispiel, jeder Staat hier Funktion liefert den nächsten Stand, um.
Die Controlling-Code für ein ganzes Programm in einer Zeile!

Code:

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

UI_16 Standby (void);
UI_16 Start (void);
UI_16 laufen (void);

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

enum (STANDBY = 0, STARTING, RUNNING);

/************************************************* ********************
* Funktion Name: main
* Beschreibung: Programm Anlaufstelle.
Initialisieren Reihe von konstanten Funktion Zeiger.
Initialisieren Rechner in den Standby-Zustand.
Ausführen Automaten.

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

SI_16 main (void)
(
UI_16 (* const Motor_State []) (void) = (Standby-Modus starten, läuft);
UI_16 State = STANDBY;


für (;;){
State = Motor_State [state] (); / * Aufruf Staat Funktion * /
)
)

/*--- Ende der Datei. ---*/
Zurück zum Anfang
View user's profile
raj_rohit10



Beitritt: 14. Jul 2004
Beiträge: 113
Geholfen: 1


Post 13 Sep 2005 7:19 Re: Function Pointer in C

hallo
die bestmögliche Nutzung der Funktion Zeiger, was ich für die Implementierung der FSM und es wird erzählt erlier 2. ist ein Call-Back-Funktion.
Zurück zum Anfang
View user's profile
abhishek_elec



Joined: 09 Sep 2005
Beiträge: 15
Geholfen: 1
Ort: Indien


Post 13 Sep 2005 12:42 Re: Function Pointer in C

Funktion Hinweise sind nützlich, wenn u haben eine allgemeine oder algo und U verwenden wollen, dieses Verfahren auf verschiedene Arten von Daten.

Für die Ex-., Wenn u eine gute Sortierung algo, und u verwenden möchten gleichen Algorithmen auf Zahlen, alphabetisch, Streicher oder Daten, die von einigen Sortierung Regel. In diesem Fall, und muss einfach schreiben, eine andere "vergleichen"-Funktion für jeden Datentyp und in den wichtigsten Sortierung algo, u wird der Funktion-Zeiger als ein Argument.
Auf diese Weise werden die gleichen Algorithmen verwendet werden können durch verschiedene PPL nach ihrer Notwendigkeit. Keine Änderung erforderlich ist, den Hauptteil der algo.
Zurück zum Anfang
View user's profile
yaseen



Beitritt: 22. Jan 2006
Beiträge: 9
Geholfen: 1


Post 27 Aug 2006 9:33 Re: Function Pointer in C

Ich habe currenlty verwendet die Funktion Hinweise in meiner C-Projekt, das ist die Menü-Editor. Der Zweck der Arbeiten ist es, Hinweise eines effizienten, kompakten und schnellen Code. Mein Code saple ist hier;

int value [] = (0x1F00, / / Alt S (^ Setup)
0x1400, / / Alt T (^ Trunks)
0x1200, / / Alt E (^ Extensions)
0x1800, / / Alt O (^ Operator)
0x2600, / / Alt L (^ Logging)
0x1900, / / Alt P (^ Passwörter)
0x2200, / / Alt G (Settin ^ gs)
0x2300 / / Alt H (^ Hilfe)
);

/ / Zeiger auf Funktionen ------ ---------------------------------
void (* Ausführen [8 ])();// Hauptmenü-Funktionen
void (* Setup [3 ])();// Menüpunkt Funktionen
void (* Trunks [9 ])();
void (* Erweiterungen [4 ])();
void (* Operator [3 ])();
void (* Protokollierung [2 ])();
void (* Passwörter [3 ])();
void (* Einstellungen [6 ])();
void (* Hilfe [10 ])();
//------------------------------------------------ ---------------

main ()
(
....
/ / Initialize Funktion Zeiger
Execute [0] = ProcessSetup;
Execute [1] = ProcessTrunks;
Ausführen [2] = ProcessExtensions;
Ausführen [3] = ProcessOperator;
Ausführen [4] = ProcessLogging;
Ausführen [5] = ProcessPasswords;
Führen Sie [6] = ProcessSettings;
Führen Sie [7] = ProcessHelp;
......

/ / Lesen Sie die Tastatur ...
i = bioskey (1);
if (i) / / Wenn Tastatur bereit ...
key = bioskey (0);
sonst
continue; / / Wenn Tastatur nicht weiter beobachten sie

/ / Führe das Menü vom Benutzer gewählten
for (j = 0; j <8; j )
(
if (key == Wert [j])
(
if (! InProcess)
(
InProcess = 1;
Führen Sie [J] ();
)
)
else if (key == 0x2D00) / / Alt X gedrückt ... also Beenden
return;
)
..........
Zurück zum Anfang
View user's profile
Post new topic Reply to topic EDAboard.com Foren-Übersicht -> PC-Programmierung und Anbindung -> Funktion Zeiger in C
Seite 1 von 1 Alle Zeiten sind GMT 2 Stunden


Missbrauch | | Administrator | | Moderatoren | | Unterstützen Sie uns | | sitemap
Thema RSS