Kurs programowania w C cz. 108

Nasza ocena:

5
Pobrań: 7
Wyświetleń: 588
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C  cz. 108 - strona 1

Fragment notatki:

124 ROZDZIAŁ 17. WSKAŹNIKI określone miejsce w pamięci. A ponieważ funkcja ma swój  adres 6,  to nie ma przeszkód, aby i na nią wskazywał jakiś wskaźnik. Deklaracja wskaźnika na funkcję Tak naprawdę kod maszynowy utworzony po skompilowaniu programu odnosi się właśnie do adresu funkcji. Wskaźnik na funkcję różni się od innych rodzajów wskaźników. Jedną z głównych różnic jest jego deklaracja. Zwykle wygląda ona tak: typ_zwracanej_wartości (*nazwa_wskaźnika)(typ1 parametr1, typ2 parametr2); Oczywiście parametrów może być więcej (albo też w ogóle może ich nie być). Oto przykład wykorzystania wskaźnika na funkcję: #include  int suma (int a, int b) { return a+b; } int main () { int (*wsk_suma)(int a, int b); wsk_suma = suma; printf("4+5=%d\n", wsk_suma(4,5)); return 0; } Zwróćmy uwagę na dwie rzeczy: 1. przypisując nazwę funkcji bez nawiasów do wskaźnika automatycznie informujemy kom- pilator, że chodzi nam o  adres  funkcji 2. wskaźnika używamy tak, jak normalnej funkcji, na którą on wskazuje Do czego można użyć wskaźników na funkcje? Język C jest językiem strukturalnym, jednak dzięki wskaźnikom istnieje w nim możliwość “zaszczepienia” pewnych obiektowych właściwości. Wskaźnik na funkcję może być np. ele- mentem struktury — wtedy mamy bardzo prymitywną namiastkę  klasy,  którą dobrze znają programiści, piszący w języku  C++.  Ponadto dzięki wskaźnikom możemy tworzyć mechani- zmy działające na zasadzie funkcji  zwrotnej 7.  Dobrym przykładem może być np. tworzenie sterowników, gdzie musimy poinformować różne podsystemy, jakie funkcje w naszym kodzie służą do wykonywania określonych czynności. Przykład: struct urzadzenie { int (*otworz)(void); void (*zamknij)(void); }; int moje_urzadzenie_otworz (void) { 6Tak naprawdę kod maszynowy utworzony po skompilowaniu programu odnosi się właśnie do adresu funkcji. 7Funkcje zwrotne znalazły zastosowanie głównie w programowaniu  GUI ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz