-
1. Data: 2011-07-25 05:32:14
Temat: Deklaracja funkcji a w niej &
Od: slawek7 <s...@w...pl>
Cześć.
Nie obrazajcie sie na mnie za te pytania, ale sam nie dojde do tego.
Spotkałem taka "dziwna" deklaracje i definicje funkcji:
typedef struct
{
unsigned char type;
unsigned char value;
} Event;
void GetEvent( Event & event )
{
event.type = TIME_EVENT;
event.value = ticks;
}
A wywołanie takiej funkcji:
GetEvent( event );
Dlaczego tak przy deklaracji pojawia sie ampersand &?
-
2. Data: 2011-07-25 06:17:57
Temat: Re: Deklaracja funkcji a w niej &
Od: Piotrek <p...@p...na.berdyczow.info>
On 2011-07-25 07:32, slawek7 wrote:
> Cześć.
> Nie obrazajcie sie na mnie za te pytania, ale sam nie dojde do tego.
>
> Spotkałem taka "dziwna" deklaracje i definicje funkcji:
> typedef struct
> {
> unsigned char type;
> unsigned char value;
> } Event;
>
>
> void GetEvent( Event& event )
> {
> event.type = TIME_EVENT;
> event.value = ticks;
> }
>
>
> A wywołanie takiej funkcji:
>
> GetEvent( event );
>
>
> Dlaczego tak przy deklaracji pojawia sie ampersand&?
Doczytaj sobie o metodach przekazywania parametrów (przez referencję).
Piotrek
-
3. Data: 2011-07-25 06:51:52
Temat: Re: Deklaracja funkcji a w niej &
Od: slawek7 <s...@w...pl>
Ale gdzie.
Przegladam wlasnie kilka ksiazek o C i C++ i zadnej nie znalazlem
tego.
Jesli wiesz w jakiej o tym pisze to daj znac.
-
4. Data: 2011-07-25 06:54:42
Temat: Re: Deklaracja funkcji a w niej &
Od: slawek7 <s...@w...pl>
A to jest referencja czy przekazanie struktury do funkcji?
-
5. Data: 2011-07-25 07:20:24
Temat: Re: Deklaracja funkcji a w niej &
Od: Portal <m...@p...wytnij.to.onet.pl>
On 07/25/2011 08:51 AM, slawek7 wrote:
> Ale gdzie.
> Przegladam wlasnie kilka ksiazek o C
Pudło - to jest C++ (ewentualnie C99, ale w każdym razie nie "koszerne" C)
> i C++ i zadnej nie znalazlem tego.
> Jesli wiesz w jakiej o tym pisze to daj znac.
Kiepsko szukałeś. Pierwszy lepszy link prosto z googla
http://www.learncpp.com/cpp-tutorial/73-passing-argu
ments-by-reference/
Pozdr
Portal
-
6. Data: 2011-07-25 08:04:57
Temat: Re: Deklaracja funkcji a w niej &
Od: "J.F" <j...@p...onet.pl>
Użytkownik "Portal" napisał w wiadomości
>> i C++ i zadnej nie znalazlem tego.
>> Jesli wiesz w jakiej o tym pisze to daj znac.
>Kiepsko szukałeś. Pierwszy lepszy link prosto z googla
>http://www.learncpp.com/cpp-tutorial/73-passing-arg
uments-by-reference/
A swoja droga - nie uwazacie ze to jakis krok w tyl ?
Mozna bylo to samo osiagnac jawnie wskaznikami, a teraz trzeba sie
wczytac w funkcje wywolywana, bo nie wiadomo - zmieni nam cos czy nie
ma prawa ?
J.
-
7. Data: 2011-07-25 08:33:25
Temat: Re: Deklaracja funkcji a w niej &
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
J.F <j...@p...onet.pl> napisał(a):
> A swoja droga - nie uwazacie ze to jakis krok w tyl ?
> Mozna bylo to samo osiagnac jawnie wskaznikami, a teraz trzeba sie wczytac
> w funkcje wywolywana, bo nie wiadomo - zmieni nam cos czy nie ma prawa ?
> J.
A przy wskaźnikach nie musiałeś się wczytywać? Różnica jest tylko w momencie
patrzenia na wywołanie, gdy nie znasz deklaracji wywoływanej funkcji. A jak
znasz i widzisz, że idzie przez referencję to wiesz, że obiekt może być
modyfikowany, tak samo jakby szło przez wskaźnik.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 12 days, 7 hours, 9 minutes and 13 seconds
-
8. Data: 2011-07-25 09:05:47
Temat: Re: Deklaracja funkcji a w niej &
Od: Portal <m...@p...wytnij.to.onet.pl>
On 07/25/2011 10:04 AM, J.F wrote:
> A swoja droga - nie uwazacie ze to jakis krok w tyl ?
> Mozna bylo to samo osiagnac jawnie wskaznikami, a teraz trzeba sie
> wczytac w funkcje wywolywana, bo nie wiadomo - zmieni nam cos czy nie ma
> prawa ?
Kwestia gustu. Dla ludzi siedzących bardziej w sprzęcie wskaźniki są
prostsze do ogarnięcia, bo odnoszą się bezpośrednio do adresów
poszczególnych struktur danych w pamięci (przynajmniej tak długo jak się
nie używa prawdziwego OSa wprowadzającego wirtualizację). Dla
"wysokopoziomowego" software'owca referencje są czystszym mechanizmem,
bo odpada cała magia z dereferencją, rzutowaniem i innymi często mało
bezpiecznymi konstrukcjami - rzuć takiemu gościowi pomysłem wskaźników
do wskaźników albo wskaźników do funkcji i zobaczysz jak się skrzywi ;-).
Jedyny problem z C++ jest taki, że wszystkie możliwe mechanizmy
przekazywania obiektów lub struktur danych (tzn. przez wartość,
wskaźniki lub referencje) są tam dostępne z grubsza na równym poziomie,
więc jak się nie rozumie ich specyfiki, to można nieźle się zaplątać.
Ale to jest ogólnie cecha języków w których wolno dużo ze strzeleniem
sobie w stopę włącznie.
A propos, jakby ktoś nie znał:
http://www.thealmightyguru.com/Humor/Docs/ShootYours
elfInTheFoot.html
Pozdr
Portal
-
9. Data: 2011-07-25 10:00:13
Temat: Re: Deklaracja funkcji a w niej &
Od: slawek7 <s...@w...pl>
A czy ma tu jakies znaczenie to, ze przekazywana jest struktura
zamiast zmiennej?
-
10. Data: 2011-07-25 12:19:50
Temat: Re: Deklaracja funkcji a w niej &
Od: "J.F" <j...@p...onet.pl>
Użytkownik "Grzegorz Niemirowski" napisał w wiadomości
J.F <j...@p...onet.pl> napisał(a):
>> A swoja droga - nie uwazacie ze to jakis krok w tyl ?
>> Mozna bylo to samo osiagnac jawnie wskaznikami, a teraz trzeba sie
>> wczytac w funkcje wywolywana, bo nie wiadomo - zmieni nam cos czy
>> nie ma prawa ?
>A przy wskaźnikach nie musiałeś się wczytywać?
Nie musialem. Jak jawnie nie przekazywalem adresu tylko "przez
wartosc" to mialem pewnosc ze sie nie zmieni :-)
A jak przekazywalem adres ... no to wiedzialem ze musze sie liczyc ze
zmiana :-)
J.