| Autor | Správa |
|---|
čerešňa
Založený: 19 júl 2005 Príspevky: 3
| 25 augusta 2005 7:01 Funkcia Ukazovatele v C | | |
|
| Kde a za akých situáciách môžeme použiť funkciu ukazovateľmi C v oblasti vstavaných?
Môže niekto vysvetliť?
Vďaka ..... Cherry |
|
| Späť na začiatok | |
 |
IanP
Založený: 05. október 2004 Príspevky: 6454 Pomohol: 1535 Poloha: West Coast
| 25 augusta 2005 7:24 Re: Funkcia Ukazovatele v C | | |
|
| | Citácia: | | Ukazovatele na funkcie nie sú tak časté ako iné používa ukazovateľ. Jeden z nich však bežné použitie je v zložení odkazy na funkciu ako parameter vo volaní funkcie. | http://www.cs.cf.ac.uk/Dave/C/node12.html Pozdravy, IanP |
|
| Späť na začiatok | |
 |
echo47
Založený: 07. apríl 2002 Príspevky: 4206 Pomohol: 566
| 25 augusta 2005 8:13 Funkcia Ukazovatele v C | | |
|
| | Ďalším spoločným použitie je volanie funkcie. Napríklad, chcete-Windows zavoláte audio rekordér funkcie zakaždým Windows dostane niektoré vzorky z mikrofónu. Dajte Windows ukazovateľ na vaše audio rekordér funkcie. |
|
| Späť na začiatok | |
 |
mat
Založený: 26. február 2004 Príspevky: 489 Pomohol: 35 Poloha: Toaletné sídla
| 25 august 2005 13:23 Re: Funkcia Ukazovatele v C | | |
|
| Funkcia odkazy nie často používa v oblasti vstavaných C, viac na strane PC programovania. V podstate je to ukazovateľ na funkciu, a v závislosti na funkcii, ukazovateľ bodov, môžete vykonávať rôzne funkcie, ktoré majú byť realizované v rovnakom riadku kódu.
Jedným z príkladov spôsobu užívania je, že máte celý rad funkcií ukazovateľmi, ktorý ukazuje na správu manipulujú, každý iný typ správy, ktorý je navrhnutý tak, aby držali rovnaký index ako vzkaz handler.
Takže môžete volať niečo ako | Kód: | fnPtr [msg-> type] (msg);
| [/ Code]
Pridané: Jedným z možných využití ukazovateľov funkcií v oblasti vstavaných C, je Plánovač úloh. |
|
| Späť na začiatok | |
 |
njfane
Založený: 27. októbra 2004 Príspevky: 15
| 26 august 2005 11:00 Re: Funkcia Ukazovatele v C | | |
|
| to je dobrá voľba nahradiť switch prípade v stave stroja pomocou funkcie ukazovadlo, v prípade, že automat má príliš veľa prepnúť prípadoch. to je program kompaktnejšie. |
|
| Späť na začiatok | |
 |
Bingo600
Založený: 26. august 2004 Príspevky: 239 Pomohol: 14
| 27 augusta 2005 14:35 funkcií Ukazovatele v C | | |
|
| To je pekný dokument o predmete
http://www.newty.de/fpt/zip/e_fpt.pdf
http://www.newty.de/fpt/index.html
/ Bingo |
|
| Späť na začiatok | |
 |
btbass
Založený: 20 júl 2001 Príspevky: 1137 Pomohol: 106 Poloha: Oberon
| 10 September 2005 15:21 Re: Funkcia Ukazovatele v C | | |
|
| Funkčné odkazy sú veľmi užitočné aj pre vstavané systémy. Ako zmodernizovaný prepínač vyhlásenie. Tiež veľmi užitočné v menu systémov. Ak je vybratá položka menu je index o functon ukazovateľ poľa.
Napríklad, každý štátnu funkciu sem vráti ďalšia štátna prejsť na. Kontrolný kód na celý program v jednom riadku!
| Kód: | /*--- Štátna stroj funkcií. ---*/
UI_16 pohotovostnom (void); UI_16 začína (void); UI_16 beh (void);
/*--- Štátna stroj. ---*/
enum (Pohotovostný = 0, POČIATOČNÝCH, bežiaci);
/************************************************* ******************** * Funkcia Meno: main * Popis: Program vstupného bodu. Inicializovať pole konštantných ukazovateľov funkcií. Inicializova stroje do pohotovostného stavu. Popravit stave stroje.
************************************************** *******************/
SI_16 main (void) ( UI_16 (* const Motor_State []) (void) (= pohotovostnom počnúc, beh); UI_16 štát = pohotovostnom režime;
pre (;;){ Štát = Motor_State [state] (); / * call štátnu funkciu * / ) )
/*--- Koniec súboru. ---*/
|
|
|
| Späť na začiatok | |
 |
Google AdSense

| 10 September 2005 15:21 Reklamy | | |
|
|
|
|
| Späť na začiatok | |
 |
raj_rohit10
Založený: 14 júl 2004 Príspevky: 113 Pomohol: 1
| 13 September 2005 7:19 Re: Funkcia Ukazovatele v C | | |
|
| ahoj najlepšie využiť funkciu ukazovadlo, čo cítim je implimentation MFŠ a ako je povedané erlier 2. je zavolať funkciu. |
|
| Späť na začiatok | |
 |
abhishek_elec
Založený: 09 Sep 2005 Príspevky: 15 Pomohol: 1 Miesto: India
| 13 September 2005 12:42 Re: Funkcia Ukazovatele v C | | |
|
| Funkčné odkazy sú užitočné, keď si u všeobecného riadenia, algoritmov a u chceli využiť tento postup na rôzne druhy údajov.
Na ex., Je-li u mať dobré triediace algoritmy a u chcieť používať rovnaké algoritmy na čísla, abecednom, slučke alebo žiadne údaje, riadi niektoré triediace pravidlo. V tomto prípade, a musím len napísať rôznych "porovnať" funkcie pre každý typ dát a pre hlavné triediace algoritmy, u postúpi ukazovateľ funkcie ako argument. Týmto spôsobom rovnaké algoritmy môžu byť použité rôzne ALS podľa ich potrieb. Zmeny je potrebné v hlavnom subjektom algoritmy. |
|
| Späť na začiatok | |
 |
yaseen
Založený: 22. január 2006 Príspevky: 9 Pomohol: 1
| 27 augusta 2006 9:33 Re: Funkcia Ukazovatele v C | | |
|
| Mám currenlty používaných funkcií odkazy na mojich K projektu, ktorý je poháňaný menu editor. Cieľom práce je napísať odkazy efektívna, kompaktný a rýchly kód. Môj kód saple je tu;
Hodnota int [] = (0x1F00, / / Alt S (^ Setup) 0x1400, / / Alt T (^ Veľkej cestovné kufre) 0x1200, / / Alt E (^ Extensions) 0x1800, / / Alt O (^ operátora) 0x2600, / / Alt L (^ Logging) 0x1900, / / Alt P (^ hesiel) 0x2200, / / Alt G (Settin ^ gs) 0x2300 / / Alt H (^ pomocníka) );
/ / ------ Ukazovatele na funkcie --------------------------------- void (* popravit [8 ])();// Hlavné menu funkcií void (* Setup [3 ])();// menu funkcií void (* Veľkej cestovné kufre [9 ])(); void (* Extensions [4 ])(); void (* Operátor [3 ])(); void (* Logging [2 ])(); void (* hesiel [3 ])(); void (* Nastavenie [6 ])(); void (* Pomoc [10 ])(); //------------------------------------------------ ---------------
main () ( .... / / Inicializova funtion odkazy Popravit [0] = ProcessSetup; Popravit [1] = ProcessTrunks; Popravit [2] = ProcessExtensions; Popravit [3] = ProcessOperator; Popravit [4] = ProcessLogging; Popravit [5] = ProcessPasswords; Popravit [6] = ProcessSettings; Popravit [7] = ProcessHelp; ......
/ / Čítanie klávesnica ... i = bioskey (1); if (i) / / Je-li klávesnice pripravený ... key = bioskey (0); iné continue; / / Je-li klávesnice nie sú pripravení ďalej monitorovanie
/ / Spustiť v menu vybraný užívateľ u (j = 0; j <8; j ) ( if (hodnota == kľúč [j]) ( if (! inProcess) ( inProcess = 1; Popravit [j] (); ) ) else if (kľúč == 0x2D00) / / Alt X aglomerovanej ... tj Ukončite návrate; ) .......... |
|
| Späť na začiatok | |
 |