-
21. Data: 2014-01-14 17:10:16
Temat: Re: pryszcze...
Od: g...@g...com
W dniu poniedziałek, 13 stycznia 2014 15:18:44 UTC+1 użytkownik inny punkt
siedzenia... napisał:
> o dzi�ki, dobry edukacyjni przyk�ad,
>
> int (*fp)(int);
>
> ale tego nie rozumiem, co to jest deklaracja?
W sumie to sie rozpetala chyba dosc poboczna dyskusja,
a mi przyszlo do glowy, ze moze chciales zapytac "co to jest
za deklaracja" :D
Ona stwierdza cos takiego: "fp jest zmienna, ktora moze
przechowywac wskazniki na funkcje pobierajace int
i zwracajace int".
Analogicznie:
int n; // n jest zmienna mogaca przechowywac liczby calkowite
int *n; // n jest zmienna mogaca przechowywac wskazniki na
// liczby calkowite
int *(*fp2)(int *); // fp2 jest zmienna mogaca przechowywac
// wskazniki na funkcje pobierajace wskazniki na int i zwracajace
// wskazniki na int
void (*vf)(); // vf jest zmienna mogaca przechowywac wskazniki
// na funkcje ktore nie pobieraja argumentow i nie zwracaja
// wartosci
void *v; // v jest wskaznikiem
Mozna stosowac rzutowania (tylko -- na co troche zwraca uwage
powyzsza dyskusja -- trzeba byc ostroznym). Na przyklad jezeli
v akurta przechowuje wskaznik do funkcji bezparametrowej, mozesz
napisac
vf = (void(*)()) v;
itd.
-
22. Data: 2014-01-14 17:23:15
Temat: Re: pryszcze...
Od: "inny punkt siedzenia..." <N...@g...pl>
> int (*fp)(int);
zanim zaczniemy dyskusję o dalszej części,
ale dlaczego umieściłeś ją w takim dziwnym miejscu?
-
23. Data: 2014-01-14 17:26:54
Temat: Re: pryszcze...
Od: g...@g...com
W dniu wtorek, 14 stycznia 2014 17:23:15 UTC+1 użytkownik inny punkt siedzenia...
napisał:
> > int (*fp)(int);
>
> zanim zaczniemy dyskusj� o dalszej cz�ci,
> ale dlaczego umie�ci�e� j� w takim dziwnym miejscu?
dlaczego dziwnym?
umiescilem ja przed jej uzyciem.
jakie miejsce Twoim zdaniem nie byloby dziwne?
-
24. Data: 2014-01-14 17:46:29
Temat: Re: pryszcze...
Od: "inny punkt siedzenia..." <N...@g...pl>
nie wiedziałem, że tak można, zadeklarować funkcję po zanaku {
dzięki, jak coś mi sie jeszcze urodzi to zapytam, dzięki.
-
25. Data: 2014-01-14 17:47:06
Temat: Re: pryszcze...
Od: "inny punkt siedzenia..." <N...@g...pl>
programowaniu avr i arm się czasem nie znasz? ;o)
-
26. Data: 2014-01-14 17:48:07
Temat: Re: pryszcze...
Od: "inny punkt siedzenia..." <N...@g...pl>
a jakbyś nie miał innych rozrywek to mogę Cię zarejestrowac na moim forum,
usbdp.org ;o)))
-
27. Data: 2014-01-14 18:12:03
Temat: Re: pryszcze...
Od: g...@g...com
W dniu wtorek, 14 stycznia 2014 17:46:29 UTC+1 użytkownik inny punkt siedzenia...
napisał:
> nie wiedzia�em, �e tak mo�na, zadeklarowa� funkcj� po zanaku {
> dzi�ki, jak co� mi sie jeszcze urodzi to zapytam, dzi�ki.
Z tego co wiem, funkcji tak deklarowac nie mozna (w standardowym C,
bo np. kompilator GNU chyba pozwala na cos takiego, tzn. na tworzenie
funkcji o zasiegu ograniczonym do innej funkcji).
Czyli dopiero deklaracja
int f(int);
w zasiegu innej funkcji bylaby zabroniona.
Jednak tamta deklaracja, tj.
int (*fp)(int);
to nie jest deklaracja funkcji, lecz deklaracja zmiennej.
Zmiennej nie byle jakiej, bo zmiennej mogacej przechowywac
adres funkcji, ale mimo wszystko zmiennej, do ktorej
mozesz przypisywac rozne wartosci.
-
28. Data: 2014-01-14 18:48:53
Temat: Re: pryszcze...
Od: "inny punkt siedzenia..." <N...@g...pl>
dzięki, ładnie to wyjaśniłeś, chwała.
-
29. Data: 2014-01-14 18:54:20
Temat: Re: pryszcze...
Od: "inny punkt siedzenia..." <N...@g...pl>
chociaż muszę jeszcze dodać, że mam też mętlik związany ze wskaźnikiem na
wskaźnik... jak się deklaruje a jak korzysta i kiedy?
P.S. a czym się różni deklaracja od definicji?
-
30. Data: 2014-01-14 19:19:26
Temat: Re: pryszcze...
Od: "R.e.m.e.K" <g...@d...null>
Dnia Tue, 14 Jan 2014 18:54:20 +0100, inny punkt siedzenia... napisał(a):
> chociaż muszę jeszcze dodać, że mam też mętlik związany ze wskaźnikiem na
> wskaźnik... jak się deklaruje a jak korzysta i kiedy?
>
> P.S. a czym się różni deklaracja od definicji?
Nie kompromituj sie polglowku, poczytaj raz w zyciu cokolwiek:
http://pl.wikipedia.org/wiki/Kategoria:Konstrukcje_p
rogramistyczne
ps. Macieju, czy zdajesz sobie sprawe z kim piszesz?
--
pozdro
R.e.m.e.K