Article View: pl.comp.lang.c
Article #308783Re: Pytanko dotyczące C/C++
From: Adam Wysocki
Date: Thu, 04 May 2017 13:29
Date: Thu, 04 May 2017 13:29
39 lines
3122 bytes
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-mailReferences:
<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