| Autor | Zpráva |
|---|
třešeň
Založen: 19 červenec 2005 Příspěvky: 3
| 25 srpna 2005 7:01 Funkce Ukazatele v C | | |
|
| Kde a za jakých situacích můžeme použít funkci ukazateli C v oblasti vestavěných?
Může někdo vysvětlit?
Díky ..... Cherry |
|
| Zpět na začátek | |
 |
IanP
Založen: 05. říjen 2004 Příspěvky: 6454 Pomohl: 1535 Poloha: West Coast
| 25 srpna 2005 7:24 Re: Funkce Ukazatele v C | | |
|
| | Citace: | | Ukazatele na funkce nejsou tak časté jako jiné používá ukazatel. Jeden z nich však běžné použití je ve složení odkazy na funkci jako parametr ve volání funkce. | http://www.cs.cf.ac.uk/Dave/C/node12.html Pozdravy, IanP |
|
| Zpět na začátek | |
 |
echo47
Založen: 07. duben 2002 Příspěvky: 4206 Pomohl: 566
| 25 srpna 2005 8:13 Funkce Ukazatele v C | | |
|
| | Dalším společným použití je volání funkce. Například, chcete-Windows zavoláte audio rekordér funkce pokaždé Windows obdrží některé vzorky z mikrofonu. Dejte Windows ukazatel na vaše audio rekordér funkce. |
|
| Zpět na začátek | |
 |
mat
Založen: 26. únor 2004 Příspěvky: 489 Pomohl: 35 Poloha: Toaletní sídla
| 25 srpen 2005 13:23 Re: Funkce Ukazatele v C | | |
|
| Funkce odkazy nejsou často používá v oblasti vestavěných C, více na straně PC programování. V podstatě je to ukazatel na funkci, a v závislosti na funkci, ukazatel bodů, můžete provádět různé funkce, které mají být realizovány ve stejném řádku kódu.
Jedním z příkladů způsobu užívání je, že máte celou řadu funkcí ukazateli, který ukazuje na zprávu manipulují, každý jiný typ zprávy, který je navržen tak, aby držely stejný index jako vzkaz handler.
Takže můžete volat něco jako | Kód: | fnPtr [msg-> type] (msg);
| [/ code]
Přidáno: Jedním z možných využití ukazatelů funkcí v oblasti vestavěných C, je Plánovač úloh. |
|
| Zpět na začátek | |
 |
njfane
Založen: 27. října 2004 Příspěvky: 15
| 26 srpen 2005 11:00 Re: Funkce Ukazatele v C | | |
|
| to je dobrá volba nahradit switch případě ve stavu stroje pomocí funkce ukazovátko, v případě, že automat má příliš mnoho přepnout případech. to je program kompaktnější. |
|
| Zpět na začátek | |
 |
Bingo600
Založen: 26. srpen 2004 Příspěvky: 239 Pomohl: 14
| 27 srpna 2005 14:35 funkcí Ukazatele v C | | |
|
| To je pěkný dokument o předmětu
http://www.newty.de/fpt/zip/e_fpt.pdf
http://www.newty.de/fpt/index.html
/ Bingo |
|
| Zpět na začátek | |
 |
btbass
Založen: 20 červenec 2001 Příspěvky: 1137 Pomohl: 106 Poloha: Oberon
| 10 Září 2005 15:21 Re: Funkce Ukazatele v C | | |
|
| Funkční odkazy jsou velmi užitečné i pro vestavěné systémy. Jako zmodernizovaný přepínač prohlášení. Také velmi užitečné v menu systémů. Pokud je vybrána položka menu je index o functon ukazatel pole.
Například, každý státní funkci sem vrátí příští státní přejít na. Kontrolní kód na celý program v jednom řádku!
| Kód: | /*--- Státní stroj funkcí. ---*/
UI_16 pohotovostním (void); UI_16 začíná (void); UI_16 běh (void);
/*--- Státní stroj. ---*/
enum (Pohotovostní = 0, POČÁTEČNÍCH, BĚŽÍCÍ);
/************************************************* ******************** * Funkce Jméno: main * Popis: Program vstupního bodu. Inicializovat pole konstantních ukazatelů funkcí. Inicializovat stroje do pohotovostního stavu. Popravit stavu stroje.
************************************************** *******************/
SI_16 main (void) ( UI_16 (* const Motor_State []) (void) (= pohotovostním počínaje, běh); UI_16 stát = pohotovostním režimu;
pro (;;){ Stát = Motor_State [state] (); / * call státní funkci * / ) )
/*--- Konec souboru. ---*/
|
|
|
| Zpět na začátek | |
 |
raj_rohit10
Založen: 14 červenec 2004 Příspěvky: 113 Pomohl: 1
| 13 Září 2005 7:19 Re: Funkce Ukazatele v C | | |
|
| ahoj nejlépe využít funkci ukazovátko, co cítím je implimentation FSM a jak je řečeno erlier 2. je zavolat funkci. |
|
| Zpět na začátek | |
 |
abhishek_elec
Založen: 09 Zář 2005 Příspěvky: 15 Pomohl: 1 Místo: Indie
| 13 Září 2005 12:42 Re: Funkce Ukazatele v C | | |
|
| Funkční odkazy jsou užitečné, když si u všeobecného řízení, algoritmy a u chtěli využít tento postup na různé druhy údajů.
Pro ex., Je-li u mít dobrý třídicí algoritmy a u chtít používat stejné algoritmy na čísla, abecedním, smyčce nebo žádné údaje, řídí některé třídicí pravidlo. V tomto případě, a musím jen napsat různých "porovnat" funkce pro každý typ dat a pro hlavní třídící algoritmy, u předá ukazatel funkce jako argument. Tímto způsobem stejné algoritmy mohou být použity různé PPL dle jejich potřeb. Změny je potřeba v hlavním subjektem algoritmy. |
|
| Zpět na začátek | |
 |
Google AdSense

| 13 Září 2005 12:42 Reklamy | | |
|
|
|
|
| Zpět na začátek | |
 |
yaseen
Založen: 22. leden 2006 Příspěvky: 9 Pomohl: 1
| 27 srpna 2006 9:33 Re: Funkce Ukazatele v C | | |
|
| Mám currenlty používaných funkcí odkazy na mých K projektu, který je poháněn menu editor. Cílem práce je napsat odkazy efektivní, kompaktní a rychlý kód. Můj kód saple je tady;
Hodnota int [] = (0x1F00, / / Alt S (^ Setup) 0x1400, / / Alt T (^ Velké cestovní kufry) 0x1200, / / Alt E (^ Extensions) 0x1800, / / Alt O (^ operátora) 0x2600, / / Alt L (^ Logging) 0x1900, / / Alt P (^ hesel) 0x2200, / / Alt G (Settin ^ gs) 0x2300 / / Alt H (^ nápovědy) );
/ / ------ Ukazatele na funkce --------------------------------- void (* Popravit [8 ])();// Hlavní menu funkcí void (* Setup [3 ])();// menu funkcí void (* Velké cestovní kufry [9 ])(); void (* Extensions [4 ])(); void (* Operátor [3 ])(); void (* Logging [2 ])(); void (* hesel [3 ])(); void (* Nastavení [6 ])(); void (* Nápověda [10 ])(); //------------------------------------------------ ---------------
main () ( .... / / Inicializovat 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; ......
/ / Čtení klávesnice ... i = bioskey (1); if (i) / / Je-li klávesnice připraven ... key = bioskey (0); jiné continue; / / Je-li klávesnice nejsou připraveni dále sledování
/ / Spustit v menu vybraný uživatel u (j = 0; j <8; j ) ( if (hodnota == klíč [j]) ( if (! inProcess) ( inProcess = 1; Popravit [j] (); ) ) else if (klíč == 0x2D00) / / Alt X lisované ... tj. Ukončete návratu; ) .......... |
|
| Zpět na začátek | |
 |