Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  


AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Pointeri la functii

c

+ Font mai mare | - Font mai mic





DOCUMENTE SIMILARE

Trimite pe Messenger
Utilizarea textelor in mod grafic
Introducere in programare orientata-obiect, mediul Visual C++, biblioteca de clase MFC
Functii - Structura unei functii
Liste dublu legate
Functii virtuale si polimorfism
Variabile globale
Exemple de utilizare a functiilor de intrare/iesire de nivel inferior
Constante sir
STRUCTURI - Sursa programului
Elemente de baza ale limbajului C

TERMENI importanti pentru acest document

Pointeri la functii

Intr-un fel, un pointer functie este un nou tip de data. Chiar daca o functie nu este o variabila, aceasta are o locatie fizica in memorie care poate fi atribuita unui pointer. Adresa atribuita pointerului este punctul de intrare al functiei. Acest pointer poate fi utilizat in locul numelui functiei. Pointerul permite de asemenea functiilor sa fie pasate (trecute) ca argumente in alte functii.




Adresa unei functii se obtine utilizand numele functiei fara nici o paranteza sau argumente (ca in cazul tablourilor).

Exemplu:

# include <stdio.h>

# include <ctype.h>

void check();

int strcmp();    /* prototip functie */

void main()

void check (char *a, char *b, int (*cmp) ())

/* cu int (*cmp) () se declara un pointer functie */

Declararea lui strcmp() in main() s-a facut din doua motive:

1) programul trebuie sa stie ce tip de valoare returneaza strcmp();

2) numele trebuie cunoscut de compilator ca si functie.

Deoarece in C nu exista o modalitate de a declara direct un pointer functie, acesta se declara indirect folosind un pointer void care poate primi orice fel de pointer.

Apelul functiei check() se face avand ca parametri doi pointeri la caracter si un pointer functie.

Instructiunea : (*cmp)(a, b)

realizeaza apelul functiei, in acest caz strcmp() iar a si b sunt argumentele acestuia.

Exemplu:



# include <stdio.h>

# include <ctype.h>

int strcmp(); /* prototip functie */

void main()

Observatie:

Functia check() poate utiliza direct functia strcmp() sub forma:

check (s1, s2, strcmp);

Exemplu:

# include <stdio.h>

# include <ctype.h>

void check ();

int strcmp();    /* prototip functie */

void main()

void check (char *a, char *b, int (*cmp) ())

// se defineste functia check()

/* cu int (*cmp) () se declara un pointer functie */






Politica de confidentialitate



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 609
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2022 . All rights reserved

Distribuie URL

Adauga cod HTML in site