Article View: pl.comp.lang.pascal
Article #92613Re: [OT] No to ciekawostka
From: Andrzej Grażyński
Date: Tue, 16 Sep 2008 10:40
Date: Tue, 16 Sep 2008 10:40
41 lines
2432 bytes
2432 bytes
Łukasz 'Maly' Ostrowski pisze:
> Andrzej Grażyński wrote:
>> No dobrze:
>>
>>
>> { BP 7 }
>> Function HighOfPackedString(const X:array of char):Word;
>> begin
>> HighOfPackedString := High(X);
>> end;
>>
>> Ile to będzie:
>>
>> HighOfPackedString('A');
>>
>> HighOfPackedString('');
>>
>>
>> Oczywiście łatwo to sprawdzić, ale przed uruchomieniem spróbuj
>> odpowiedzieć na wyczucie.
>
>
> Logicznie, odpowiednio 0 i -1, żeby odpowiednio był "jeden
> znak" i "zero znaków". Czy istotne jest BP7? Ponieważ nie
> posiadam takowego.
>
> Sprawdzając w fpc - dostaje 0 i 0.. hm, to impikuje, że
> pusty string ma tak jakby jeden znak. Mogę się mylić.
>
W BP wartości High i Low nie mogą być ujemne (są typu WORD). Nie ma
zesztą takiej potrzeby, po nie da się skonstruować pustej
(zero-elementowej) tablicy. Z tym jednym wyjątkiem (pusty łancuch jako
substytut array of char). Trudno sobie z tym poradzić w sposób spójny
(skoro ma nie byc pustych tablic) i dlatego projektanci BP musieli
zastosować obejście zasad w ten sposób, że pusty łańcuch, zastępujący
parametr (open) array of char, traktowany jest tak jak jednoznakowy
łancuch zawierający znak #0. Ta cecha jest udokumentowanaw w "Language
guide".
A skoro tak było w BP, to dla zachowania kompatybilności przeszło na
następne wcielenia Pascala.
Technical Details
Message-ID:
<gao2eo$892$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<20080905121945.03f2cdf2.solaris@be.inspired> <ga9dbc$t6b$1@news.onet.pl> <ga9plv$qtu$1@news.dialog.net.pl> <gab0dr$jj4$1@news.onet.pl> <gadoek$6o7$1@news.dialog.net.pl> <gah9t1$crr$1@news.onet.pl> <gak1u4$3od$1@news.dialog.net.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: Andrzej Grażyński <grazynsk@petex.com.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: [OT] No to ciekawostka Date: Tue, 16 Sep 2008 12:40:18 +0200 Organization: Onet.pl Lines: 41 Message-ID: <gao2eo$892$1@news.onet.pl> References: <20080905121945.03f2cdf2.solaris@be.inspired> <ga9dbc$t6b$1@news.onet.pl> <ga9plv$qtu$1@news.dialog.net.pl> <gab0dr$jj4$1@news.onet.pl> <gadoek$6o7$1@news.dialog.net.pl> <gah9t1$crr$1@news.onet.pl> <gak1u4$3od$1@news.dialog.net.pl> NNTP-Posting-Host: 83-238-237-192.adsl.inetia.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1221561624 8482 83.238.237.192 (16 Sep 2008 10:40:24 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Tue, 16 Sep 2008 10:40:24 +0000 (UTC) X-Sender: 2ysppuKZfnIJFd8Xm5/5BA== In-Reply-To: <gak1u4$3od$1@news.dialog.net.pl> User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit