🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Pytanko dotyczące C/C++

#308783
From: Adam Wysocki
Date: Thu, 04 May 2017 13:29
39 lines
3122 bytes
"PawelS pawel(at)wbcd(dot)pl" <fake@email.org> wrote:

>>> 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); 

Skoro już bawimy się w wykopaliska (hint: zobacz, Pawle, z kiedy jest 
post, na który odpowiadasz)...

Ja używam wariantu drugiego, chociaż mam z tym pewien mentalny problem.

Problem polega na tym, że wariant pierwszy bardziej pasuje do mojego 
sposobu myślenia, gdzie kładziony jest nacisk na typ wskaźnika (wariant 
"int* a" mówi, że typem zmiennej "a" jest wskaźnik na int), a wariant 
drugi kładzie nacisk na typ wskazywanych danych ("int *a" mówi, że typem 
danych wskazywanych przez "a" jest int).

Dlaczego więc jednak wariant drugi? Bo rozwiązuje to problem deklarowania 
wskaźnika razem z inną zmienną w jednej linii. W przypadku wariantu 
pierwszego można się spodziewać, że "int* a, b" deklaruje "b" jako 
wskaźnik, co jest oczywiście nieprawdą, mamy też problem podczas 
deklaracji typu "int a, *b" - nie da się, wg mnie, zapisać tego elegancko 
w pierwszym wariancie.

Z drugiej strony Stroustrup preferuje wariant pierwszy...

Spotkałem się też z opinią, że w C powinno się stosować wariant drugi, 
a w C++ pierwszy, bo C++ ma silniejsze typowanie i programiści powinni 
przestać myśleć w kategorii wartości, a zacząć w kategorii typów. Ma to 
jakiś sens. Póki co cały czas stosuję, w C i C++, wariant drugi.

> jeszcze takie zapisy: int &argument
> (ale to chyba już kodzie w C++).

Doczytaj o referencjach.

-- 
[ Email: a@b a=grp b=chmurka.net ]
[ Web:   http://www.chmurka.net/ ]
Technical Details
Message-ID: <33Tdfhun0Iee6Nv8%gof@news.chmurka.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.xt.v.chmurka.net!not-for-mail
References: <4069150b-d97c-4c69-ac7e-b46f61454c32@googlegroups.com> <b4a56919-36ca-497f-a455-205f8645f63a@googlegroups.com> <oedk0h$6bk$1@node1.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.xt.v.chmurka.net!not-for-mail
From: gof@somewhere.invalid (Adam Wysocki)
Newsgroups: pl.comp.lang.c
Subject: Re: Pytanko dotyczące C/C++
Date: Thu, 4 May 2017 13:29:49 +0000 (UTC)
Organization: news.chmurka.net
Message-ID: <33Tdfhun0Iee6Nv8%gof@news.chmurka.net>
References: <4069150b-d97c-4c69-ac7e-b46f61454c32@googlegroups.com> <b4a56919-36ca-497f-a455-205f8645f63a@googlegroups.com> <oedk0h$6bk$1@node1.news.atman.pl>
Mime-Version: 1.0
Injection-Date: Thu, 4 May 2017 13:29:49 +0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="gof"; posting-host="xt.v.chmurka.net:172.24.44.4"; logging-data="10472"; mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: tin/2.3.3-20160327 ("Kinloch") (UNIX) (Linux/3.16.0-4-amd64 (x86_64))
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/simple; d=chmurka.net; s=news; t=1493904587; bh=c/mgKhitz3dkrsE6Lkmxto6t1+Y=; h=From:Subject:Newsgroups:References:Message-ID:Cancel-Lock:  User-Agent:MIME-Version:Content-Type:Content-Transfer-Encoding; b=jylU8as5AA7OP3HmcG1CDrfQ2JMGoTNYzOFiIOPYmcKd+ZfZ9j5NjqRdeUDlY7rYH  6kAFiUo9SA5Zz7DQJ4NOhsFpzEddo8bXxN5S9XN1yfgPbU66NywTCET/eXXvLht1BR  3zdccU16GpOLHO8+jcbqZtl5xIXbphL+qPQBqiDc=BqiDc=
Cancel-Lock: sha1:oc9el70dH54kIgT5M428xE86yRY=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit