🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #308779

Re: Pytanko dotyczące C/C++

#308779
From: bartekltg
Date: Sun, 07 Aug 2016 17:38
56 lines
2650 bytes
On 04.08.2016 09:58, stchebel@gmail.com wrote:
> Prośba: Napiszcie mi w kilku "żołnierskich" słowach jaka jest różnica/jak to interpretować:

W żołnierskich słowach, za napis:
C/C++
Należy się marszobieg w słonikach;-)

C/C++ to jak "instrukcja sterowania czołgiem/helikopterem" :-)


> 1) void Jakaś_Tam_Funkcja(int* Jakaś_Tam_Zmienna);
> 2) void Jakaś_Tam_Funkcja(int *Jakaś_Tam_Zmienna);
> 3) void Jakaś_Tam_Funkcja(int * Jakaś_Tam_Zmienna);

> Nie chodzi mi o "void". Chodzi mi o umiejscowienie gwiazdek.

Żadna.
Spacja nie ma znaczenia.
void Jakaś_Tam_Funkcja(int*Jakaś_Tam_Zmienna);
to to samo.


> Aha!! I jak następnie prawidłowo wywoływać tą funkcję z pewną zmienną o zadanej wartości.

int zmnienna;
...
Jakaś_Tam_Funkcja ( &zmienna );
...


W C jest to prawidłowe i jedyne rozwiązanie.
Trochę strach się pomylić i wstaewcić tem potem zmienną
zamiast jej adresu... trzeba warningi czytać.

W C++ jeśli chcesz, by funkcja wzięła zmienną i coś z nią
zrobiła (zmodyfikowała) lepiej ndeklarować tak:

void Jakaś_Tam_Funkcja(int &Jakaś_Tam_Zmienna);
Wtedy Jakaś_Tam_Zmienna jest referncją, technicznie wskaźnik do tego,
co tam wsadziłeś, ale obsługujesz jak normalną zmienną.
Odpalać normalnie:
Jakaś_Tam_Funkcja ( zmienna );


Jeśli nie modyfikujesz,
void Jakaś_Tam_Funkcja(const int &Jakaś_Tam_Zmienna);

Niby const niepotrzebne, ale wtedy kompilator pilnuje, czy nie
zrobisz sam błędu zapominając "miałem nie modyfikować"
(a operacja zmodyfikowania zmiennej może siedzieć głęboko
w kolejnycvh wywołacniach!).
Przy dobrych wiatrach może być też ciut lepiej optymalizowane.


pzdr
bartekltg
Technical Details
Message-ID: <no7rn7$u0p$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <4069150b-d97c-4c69-ac7e-b46f61454c32@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: bartekltg <bartekltg@gmail.com>
Newsgroups: pl.comp.lang.c
Subject: Re: Pytanko dotyczące C/C++
Date: Sun, 7 Aug 2016 19:38:46 +0200
Organization: ATMAN - ATM S.A.
Lines: 57
Message-ID: <no7rn7$u0p$1@node1.news.atman.pl>
References: <4069150b-d97c-4c69-ac7e-b46f61454c32@googlegroups.com>
NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1470591527 30745 89.70.119.159 (7 Aug 2016 17:38:47 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sun, 7 Aug 2016 17:38:47 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
In-Reply-To: <4069150b-d97c-4c69-ac7e-b46f61454c32@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit