Article View: pl.comp.lang.pascal
Article #92621Dość trudne...
From: Andrzej Grażyński
Date: Wed, 17 Sep 2008 19:58
Date: Wed, 17 Sep 2008 19:58
81 lines
2070 bytes
2070 bytes
{ BP 7 }
Rozwiązanie 1:
Procedure MyProc(X:PChar);
begin
...
end;
...
MyProc('TAKI SOBIE STRING');
================================
Rozwiązanie 2:
Procedure MyProc(const X:String);
begin
...
end;
...
MyProc('TAKI SOBIE STRING');
===========================
Rozwiązanie 1 ma pewną wadę w stosunku do Rozwiązania 2. Jaką ?
Odpowiedź poniżej (nie każę zgadywać, bo rzecz dość ciekawa).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
W Rozwiązaniu 1 string 'TAKI SOBIE STRING' trzymany jest w segmencie
danych, w którym w BP każdy bajt jest na wagę złota (bo jest max 64K na
całą app).
W Rozwiązaniu 2 string 'TAKI SOBIE STRING' trzymany jest w segmencie
kodu. Co prawda każdy segment kodu jest też max 64K, ale aplikacja może
zawierać wiele takich segmentów.
Umieszczanie w segmencie danych stringów zastępujących parametry PChar
było konieczne dla prawidłowego działania programów z nakładkami. Dla
kompatybilności jednak jest ono stosowane przez kompilator zarówno w
nienakładkowanych programach trybu Real, jak i w trybie Protected.
Technical Details
Message-ID:
<garnhn$1gu$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>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: Dość trudne... Date: Wed, 17 Sep 2008 21:58:41 +0200 Organization: Onet.pl Lines: 88 Message-ID: <garnhn$1gu$1@news.onet.pl> References: <20080905121945.03f2cdf2.solaris@be.inspired> NNTP-Posting-Host: 83-238-237-192.adsl.inetia.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1221681527 1566 83.238.237.192 (17 Sep 2008 19:58:47 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Wed, 17 Sep 2008 19:58:47 +0000 (UTC) X-Sender: 2ysppuKZfnIJFd8Xm5/5BA== In-Reply-To: <20080905121945.03f2cdf2.solaris@be.inspired> User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit