Reguli | recente | subiect RSS | Cauta | Inregistrare | Autentificare

Funcția Trimiteri in C



Post new topic Reply to topic EDAboard.com Forum Index -> PC Programare și interfațare -> Funcția Trimiteri in C
Arabă versiunea Versiunea bulgară Catalană versiunea Versiunea cehă Versiunea daneză Versiunea germană Versiunea în limba greacă Versiunea în limba engleză Limba spaniolă Versiunea finlandeză Versiunea franceză Hindi versiunea Croată versiunea Indoneziană versiunea Versiunea italiană Ebraică versiunea Versiune japoneză Coreeană versiunea Versiunea lituaniană Versiunea letonă Versiunea olandeză Norvegiană versiunea Poloneză versiunea Versiunea portugheză Versiunea română Versiune rusă Versiunea slovacă Versiunea slovenă Sârbă versiunea Versiunea suedeză Filipinez versiunea Ucraineană versiunea Vietnameză versiunea Chineză versiune
Autor Mesaj
cireșe



Alăturat: 19 iulie 2005
Posts: 3


Post 25 august 2005 7:01 Funcția Trimiteri in C

În cazul în care și în ce situații se poate folosi funcția de indicii în Embedded C?

Poate cineva să explice?

Multumesc ..... Cherry
Back to top
View user's profile
IanP



Alăturat: 05 octombrie 2004
Posts: 6454
A ajutat la: 1535
Locatie: Coasta de Vest


Post 25 august 2005 7:24 Re: Funcția Trimiteri in C

Citat:
Trimiteri către funcții nu sunt la fel de comune ca indicatorul alte utilizări. Cu toate acestea, o comună de utilizare este într-o trecere la o funcție indicii ca un parametru într-o funcție de apel.

http://www.cs.cf.ac.uk/Dave/C/node12.html
Cu respect,
IanP
Back to top
View user's profile
echo47



Alăturat: 07 aprilie 2002
Posts: 4206
A ajutat: 566


Post 25 august 2005 8:13 Funcția Trimiteri in C

O altă cerere comună este o funcție callback. De exemplu, Windows pe care doriți să apelați audio recorder funcție de fiecare dată când primește Windows unele probe de la microfon. Ai da Windows un pointer la funcția de înregistrare audio.
Back to top
View user's profile
șah-mat



Alăturat: 26 februarie 2004
Posts: 489
A ajutat: 35
Locație: WC


Post 25 aug 2005 13:23 Re: Funcția Trimiteri in C

Funcția indicii nu sunt adesea folosite în încorporat C, mai multe PC-ul pentru partea de programare. În esență, acesta este un pointer la o funcție, precum și în funcție de care funcție de indicatorul de puncte pentru a, aveți posibilitatea să pună în aplicare diferite funcții pentru a fi executat în aceeași linie de cod.

Un exemplu modul de utilizare este că aveți o serie de indicii funcției, ceea ce indică mesaj manipulanții, fiecare de un alt tip de mesaj care este conceput pentru a ține în același indice ca mesajul handler.

Astfel, puteți suna ceva de genul
Cod:

fnPtr [msg-> tip] (mesaj);
[/ code]

Adăugat:
O posibilă utilizarea de indicatori în funcție încorporat C, este un Task Scheduler.
Back to top
View user's profile
njfane



Alăturat: 27 octombrie 2004
Posts: 15


Post 26 aug 2005 11:00 Re: Funcția Trimiteri in C

aceasta este o alegere bună pentru a înlocui caz trece într-o stare de mașini folosind funcția pointer,
In cazul in care masina a stat prea multe cazuri trece. el face programul mai compact.
Back to top
View user's profile
Bingo600



Alăturat: 26 august 2004
Posts: 239
A ajutat: 14


Post 27 aug 2005 14:35 Funcția Trimiteri in C

Aceasta este o drăguț document pe această temă

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

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

/ Bingo
Back to top
View user's profile
btbass



Alăturat: 20 iulie 2001
Posts: 1137
A ajutat: 106
Locatie: Oberon


Post 10 Sep 2005 15:21 Re: Funcția Trimiteri in C

Funcția indicii sunt foarte utile în proiectarea sistemelor cu microcontrollere. Ca o declarație simplificată trece. De asemenea, foarte utile în meniul sisteme. În cazul în care elementul de meniu selectat este un index al functon pointer matrice.

De exemplu, fiecare stat aici funcția returnează următorul stat pentru a trece la.
Cod de control pentru un întreg program într-o singură linie!

Cod:

/*--- Membru mașină de funcții. ---*/

UI_16 așteptare (gol);
UI_16 incepand (gol);
UI_16 să fie difuzate (gol);

/*--- Membru Machine. ---*/

enum (standby = 0, începând, să fie difuzate);

/************************************************* ********************
Funcția * Nume: principale
* Descriere: Programul de punct de intrare.
Initialise array constantă funcție de indicii.
Initialise stare de așteptare la mașină.
Executarea unui stat mașină.

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

SI_16 principal (gol)
(
UI_16 (* Const Motor_State []) (gol) = (așteptare, incepand, rularea);
UI_16 = membru de așteptare;


pentru (;;){
Membru = Motor_State [membru] (); / * apel în funcție de stat * /
)
)

/*--- Sfârșit de fișier. ---*/
Back to top
View user's profile
raj_rohit10



Alăturat: 14 iulie 2004
Posts: 113
A ajutat: 1


Post 13 Sep 2005 7:19 Re: Funcția Trimiteri in C

salut
cea mai bună utilizare a funcției pointer ce simt este implimentation de FSM și-a spus ca este erlier 2a este un apel înapoi funcție.
Back to top
View user's profile
abhishek_elec



Alăturat: 09 Sep 2005
Posts: 15
A ajutat: 1
Locatie: India


Post 13 Sep 2005 12:42 Re: Funcția Trimiteri in C

Funcția indicii sunt utile atunci când u avea o procedură sau generalizate Algo u și doriți să utilizați această procedură cu privire la diferite tipuri de date.

De ex., Dacă au și o bună sortare Algo, u și doriți să utilizați aceeași Algo pe numere, alfabetică, siruri de caractere sau orice date reglementate de unele sortare regulă. În acest caz, și trebuie să scrie doar un alt "compara" funcție, pentru fiecare tip de date, precum și în principal de sortare Algo, u va trece în funcția indicatorul ca un argument.
În acest fel, același Algo poate fi utilizat de către ppl diferite în funcție de nevoie. Nu este necesară modificarea în corpul principal de Algo.
Back to top
View user's profile
Google
AdSense





Post 13 Sep 2005 12:42 Anunțuri



Back to top
yaseen



Alăturat: 22 ianuarie 2006
Posts: 9
A ajutat: 1


Post 27 august 2006 9:33 Re: Funcția Trimiteri in C

Nu am folosit funcția currenlty indicii în C mea de proiect, care este condus de meniu editor. Scopul este de teze de indicii pentru a scrie o eficienta, compact si rapid de cod. Cod saple meu este aici;

Valoare int [] = (0x1F00, / / Alt S (^ Setup)
0x1400, / / Alt T (^ trunchiuri)
0x1200, / / Alt E (^ Extensions)
0x1800, / / Alt O (^ Operator)
0x2600, / / Alt L (^ Jurnalizarea)
0x1900, / / Alt P (^ Parolele)
0x2200, / / Alt G (Settin ^ GS)
0x2300 / / Alt H (^ Ajutor)
);

/ / ------ Trimiteri către funcții ---------------------------------
nule (* Execute [8 ])();// Meniu Principal funcții
nule (* Setup [3 ])();// meniu funcții
nule (* trunchiuri [9 ])();
nule (* extensii [4 ])();
nule (* operator [3 ])();
nule (* Jurnalizarea [2 ])();
nule (* Parolele [3 ])();
nule (* Setări [6 ])();
nule (* Ajutor [10 ])();
//------------------------------------------------ ---------------

main ()
(
....
/ / Inițializa funtion indicii
Execute [0] = ProcessSetup;
Execute [1] = ProcessTrunks;
Execute [2] = ProcessExtensions;
Execute [3] = ProcessOperator;
Execute [4] = ProcessLogging;
Execute [5] = ProcessPasswords;
Execute [6] = ProcessSettings;
Execute [7] = ProcessHelp;
......

/ / Citește tastatura ...
i = bioskey (1);
dacă (i) / / Dacă tastatura gata ...
key = bioskey (0);
alt
continua; / / Dacă tastatura nu gata apoi continua-l uitam

/ / Execute meniul selectat de către utilizator
for (j = 0; j <8; j )
(
if (cheie == Valoare [j])
(
if (! inProcess)
(
inProcess = 1;
Execute [j] ();
)
)
else if (cheie == 0x2D00) / / Alt X presat ... adică Părăsiți
întoarcere;
)
..........
Back to top
View user's profile
Post new topic Reply to topic EDAboard.com Forum Index -> PC Programare și interfațare -> Funcția Trimiteri in C
Pagina 1 din 1 Ora este GMT 2 ore


Abuz | | Administrator | | Moderatori | | Sustineti-ne | | harta site
subiect RSS