| Autor | Wiadomość |
|---|
czereśnia
Dołączył: 19 lipca 2005 Posts: 3
| 25 sierpnia 2005 7:01 Function Wskaźniki w C | | |
|
| Gdzie iw jakich sytuacjach możemy użyć wskaźników funkcji wbudowanych w C?
Czy ktoś wytłumaczyć?
Dzięki ..... Cherry |
|
| Powrót do góry | |
 |
IanP
Dołączył: 05 października 2004 Posts: 6454 Dzięki: 1535 Lokalizacja: West Coast
| 25 sierpnia 2005 7:24 Re: Function Wskaźniki w C | | |
|
| | Cytat: | | Wskaźniki do funkcji nie są tak jak inne wspólne wskaźnik zastosowań. Jednakże jedno wspólne wykorzystanie w przekazując wskazówki do funkcji jako parametr do wywołania funkcji. | http://www.cs.cf.ac.uk/Dave/C/node12.html Pozdrowienia, IanP |
|
| Powrót do góry | |
 |
echo47
Dołączył: 07 kwietnia 2002 Posts: 4206 Dzięki: 566
| 25 sierpnia 2005 8:13 Function Wskaźniki w C | | |
|
| | Kolejny wspólny wniosek jest wywołania funkcji. Na przykład, chcesz, aby system Windows połączenia audio rejestrator funkcji Windows za każdym razem otrzymuje kilka próbek z mikrofonu. Dajesz Windows wskaźnik do funkcji rejestratora dźwięku. |
|
| Powrót do góry | |
 |
mat
Dołączył: 26 lutego 2004 Posts: 489 Dzięki: 35 Lokalizacja: Toaleta Seat
| 25 sierpnia 2005 13:23 Re: Funkcja Wskaźniki w C | | |
|
| Funkcja wskazówek nie są często stosowane w wbudowanych C, więcej na stronie PC programowania. Zasadniczo jest to wskaźnik do funkcji, a które w zależności od funkcji wskaźnika wskazuje, można realizować różne funkcje, które mają być wykonane w tej samej linii kodu.
Przykładem sposobu użytkowania jest to, że masz tablicę wskaźników funkcji, co wskazuje na obsługę wiadomości, z których każdy inny typ wiadomości, który jest przeznaczony do prowadzenia tego samego indeksu jako wiadomość obsługi.
Tak więc można połączyć coś | Kod: | fnPtr [msg-> type] (msg);
| [/ code]
Dodano: Jedną z możliwości wykorzystania wskaźników funkcji wbudowanych w C, jest zadaniem scheduler. |
|
| Powrót do góry | |
 |
njfane
Dołączył: 27 października 2004 Posts: 15
| 26 sierpnia 2005 11:00 Re: Funkcja Wskaźniki w C | | |
|
| jest to dobry wybór aby zastąpić przełącznik przypadku w stanie maszyna funkcję wskaźnika, w przypadku tego państwa maszyna ma zbyt wielu przypadkach przełączać. to czyni program bardziej zwarty. |
|
| Powrót do góry | |
 |
Google AdSense

| 26 sierpnia 2005 11:00 Reklamy | | |
|
|
|
|
| Powrót do góry | |
 |
Bingo600
Dołączył: 26 sierpnia 2004 Posts: 239 Dzięki: 14
| 27 sierpnia 2005 14:35 Function Wskaźniki w C | | |
|
| Jest to dobry dokument na ten temat
http://www.newty.de/fpt/zip/e_fpt.pdf
http://www.newty.de/fpt/index.html
/ Bingo |
|
| Powrót do góry | |
 |
btbass
Dołączył: 20 lipca 2001 Posts: 1137 Dzięki: 106 Lokalizacja: Oberon
| 10 wrz 2005 15:21 Re: Funkcja Wskaźniki w C | | |
|
| Funkcja wskazówek są bardzo przydatne w systemach wbudowanych. Jak usprawnić switch. Również bardzo przydatne w menu systemu. Jeżeli menu jest wybrany indeks functon o wskaźnik tablicy.
Na przykład, każde państwo funkcji tutaj powróci następnego, aby przełączyć się na stanie. Kontrolującego kod całego programu w jednej linijce!
| Kod: | /*--- Członkowskiego maszyny funkcji. ---*/
UI_16 gotowości (void); UI_16 począwszy (void); UI_16 jazdy (void);
/*--- Państwa Machine. ---*/
enum (STANDBY = 0, URUCHAMIANIE, RUNNING);
/************************************************* ******************** * Funkcja Imię i nazwisko: główne * Opis: Program punktu. Initialise stałej tablicy wskaźników funkcji. Initialise maszyny do stanu gotowości. Wykonaj stan maszyny.
************************************************** *******************/
SI_16 main (void) ( UI_16 (* const Motor_State []) (void) = (gotowości, poczynając, bieganie); UI_16 państwa = STANDBY;
dla (;;){ Państwa = Motor_State [państwa] (); / * stan połączenia funkcji * / ) )
/*--- Koniec pliku. ---*/
|
|
|
| Powrót do góry | |
 |
raj_rohit10
Dołączył: 14 lipca 2004 Posts: 113 Dzięki: 1
| 13 Wrzesień 2005 7:19 Re: Function Wskaźniki w C | | |
|
| witaj najlepsze wykorzystanie funkcji wskaźnika, co czuję jest implimentation FM i jak to powiedział jeden erlier 2-ta oddzwaniać funkcji. |
|
| Powrót do góry | |
 |
abhishek_elec
Dołączył: 09 Wrz 2005 Posts: 15 Dzięki: 1 Lokalizacja: Indie
| 13 Wrz 2005 12:42 Re: Funkcja Wskaźniki w C | | |
|
| Funkcja wskazówki są przydatne, gdy u ma ogólnych postępowania lub algo u chcą korzystać z tej procedury w sprawie różnych rodzajów danych.
Na ex. Razie u have a good sortowanie algo, oraz u chcesz używać tych samych numerów na algo, alfabetycznie, łańcuchy lub jakichkolwiek danych regulowane przez niektóre reguły sortowania. W takim przypadku, i muszą tylko napisać różnych "porównanie" funkcję dla każdego typu danych w głównym sortowanie algo, u przekazać funkcję wskaźnika jako argumentu. W ten sposób, ten sam algo mogą być wykorzystane przez różne ppl na ich potrzeby. Nie jest wymagane zmiany w głównym organem algo. |
|
| Powrót do góry | |
 |
yaseen
Dołączył: 22 stycznia 2006 Posts: 9 Dzięki: 1
| 27 sierpnia 2006 9:33 Re: Function Wskaźniki w C | | |
|
| Mam currenlty używanych funkcji wskazówki w moim C projektu, który jest napędzany menu edytora. Celem tych wskazówek jest napisać wydajne, kompaktowe i szybkie kodu. Mój kod saple jest tutaj;
Wartość int [] = (0x1F00, / / Alt S (^ Setup) 0x1400, / / Alt T (^ Trunks) 0x1200, / / Alt E (^ Rozszerzenia) 0x1800, / / Alt O (^ Operator) 0x2600, / / Alt L (^ Logging) 0x1900, / / Alt P (^ haseł) 0x2200, / / Alt G (Settin ^ gs) 0x2300 / / Alt H (Pomoc ^) );
/ / ------ Wskaźniki do funkcji --------------------------------- void (* Execute [8 ])();// Menu główne funkcje void (* Setup [3 ])();// Element menu funkcji void (* Trunks [9 ])(); void (* Rozszerzenia [4 ])(); void (* Operator [3 ])(); void (* Logging [2 ])(); void (* Hasła [3 ])(); void (* Ustawienia [6 ])(); void (* Pomoc [10 ])(); //------------------------------------------------ ---------------
main () ( .... / / Zainicjuj funtion 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; ......
/ / Odczyt klawiatury ... i = bioskey (1); if (i) / / Jeżeli klawiatura gotowa ... klucz = bioskey (0); w przeciwnym razie dalej; / / Jeśli klawiatura nie jest gotowy a następnie kontynuować oglądanie go
/ / Execute menu wybrane przez użytkownika for (j = 0; j <8; j ) ( if (klawisz == wartość [J]) ( if (! inProcess) ( inProcess = 1; Execute [j] (); ) ) else if (klawisz == 0x2D00) / / Alt X naciśnięciu ... czyli Zamknij powrotu; ) .......... |
|
| Powrót do góry | |
 |