Re: bytegroesse, was endianess/Re: audio-cd

From: Oliver Fromme <olli(at)secnetix.de>
Date: Fri, 22 Mar 2002 17:22:08 +0100 (CET)

clemensF <ino-waiting(at)gmx.net> wrote:
> > Oliver Fromme:
> > Performance. Schlimmstenfalls muß er zwei Cache-Lines
> > füllen, um _ein_ Wort aus dem Speicher zu laden, das sich
> > an einer ungerade Adresse befindet. Der Programmierer
> > merkt nichts davon, außer daß der Code langsamer wird (was
> > er typischerweise auch nicht merkt, oder es ist ihm egal,
> > aber dem Anwender nicht). Auf Alphas kann Dir das nicht
> > so leicht passieren.
>
> weil's dir dann "um die ohren fliegt"?

Ja, genau, so gehört sich das.

Die Systeme sollten eigentlich noch viel konsequenter sein.
Wenn z.B. unter FreeBSD free() mit einem ungültigen Pointer
aufgerufen wirst, kriegst Du eine Warnung von der libc auf
stdout, und das Programm läuft fleißig weiter. Das halte
ich für grobe Fahrlässigkeit. Da gehört ein abort() hin,
mindestens.

> der hochsprachenprogrammierer
> sollte sich tunlichst um wichtigeres kuemmern.

Richtig, aber C oder C++ (was die meisten unter UNIX ver-
wenden) ist ja auch keine Hochsprache. ;-) Compilier und
starte mal folgendes C-Programm auf 'ner Alpha:

int main() {
        char c; int *p;
        p = (int *) &c + 1;
        return *p;
}

Das fliegt Dir um die Ohren, und das ist auch völlig rich-
tig so. Auf i386 laufen Programme mit solchen Fehlern ein-
fach. Vielleicht produzieren sie falsche Resultate, je
nach Intention des Programmierers, aber das merkt mögli-
cherweise niemand.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 22 Mar 2002 - 17:22:11 CET

search this site