Re: Ein praktische Demonstration [long]



"Herbert Rosenau" <os2guy@xxxxxxxxxxxxx> writes:
On Mon, 31 Jan 2011 18:54:58 UTC, Rainer Weikusat
<rweikusat@xxxxxxxxxxx> wrote:
Wird das eigentlich nicht irgendwann mal langweilig, sich staendig
ohne erkennbaren Sinn zu wiederholen? 'void *' ist in C ein
polymorpher Zeigertyp (jeder Zeiger auf ein Objekt kann als void *
repraesentiert werden) und zwar zufaelligerweise der einzige
polymorphe Zeigertyp und 'komischerweise' kann man void * deswegen in
C benutzen, um Zeiger auf Objekte unterschiedlicher aber kompatibler
Typen an Unterroutinen zu uebergeben ohne deswegen staendig alles
vorwaerts und rueckwaerts casten zu muessen. Dh wenn folgende
Strukturen existieren:

struct a {
int b;
};

struct b {
struct a a;
int c;
};

und folgende Objekte:

struct a *pa;
struct b *pb;

dann ist folgendes korrektes C

pb = malloc(sizeof(*pb));
pa = (struct a *)pb;

Warum so kompliziert, wenn es acu wunderschöneifach geht?

pa = &pb->a;

In diesem Punkt moechte ich Dich auf das Original-Beispiel verweisen:
In diesem Fall erfordert jeder Aufruf einer Methode, dass man die
'passende' &a->b.c.d.e usf Kombination waehlt um jeweils das
enthaltende Strukturelement mit dem richtigen Typ anzugeben.

Das halte ich fuer 'undurchsichtigen Code'.

[...]

Und dann werde ich auch mal 'ein Analogon' versuchen: Wenn Du jemanden
fuer 'inkompetent' erklaerst, weil er bestimmte features einer
bestimmten Programmiersprache in einer Weise benutzt, wie das auch in
gerade in Betriebssystemenkernen fuer 'missionskritische Anwendungen'
seit beinnahe zwanzig Jahren gemacht wird, denn darf man Deine eigene
Kompetenz berechtigt in Zweifel ziehen und sollte gegebenenfalls ueber
eine Verleumdungsklage ernsthaft nachdenken.

Mit Deinem Beispiel das Du oben abgeliefet hast, hast Du Deine
fehlende Kompetenz ausreichend dokumentiert und keine Zweifel daran
gelassen.

Hier genuegt, denke ich, der Hinweis das 'Herbert' (der auf eine mir
unklare Weise hier aus dem news-filter zum Vorschein
kam, mit dem ich mir seine konstanten verbalen Entgleisungen seit
beinnahe zehn Jahren vom Leibe gehalten habe) natuerlich nur mal
wieder ein bisschen 'maulfurzen' wollte und den Kontext der obigen
Aussage meines Erachtens nach gar nicht wahrzubehmen imstande ist.

- score adjusted -
.



Relevant Pages

  • Re: Ein praktische Demonstration [long]
    ... Programmierer mitzuteilen. ... um Zeiger auf Objekte unterschiedlicher aber kompatibler ... 'geht es' (dh kann ich das verwenden, wenn ich es fuer sinnvoll halte, ... Zweifel an seiner Kompetenz haben. ...
    (de.comp.lang.c)
  • Re: C-Programmierung unter Mac OS X
    ... enthaltenen Zahlen werden im Schleifenkoerper fuer eine Berechnung ... falls der Zeiger gueltig ist. ... That sounds trivial, but look at the ... desselben Uebertragungskanals sowohl fuer Nutzdaten als auch (von ...
    (de.comp.lang.c)
  • Re: Installation von openSuse 10.3
    ... Fuer so was braucht man etwas Kompetenz und zumindest ein bischen Bereit- ... vermutlich weniger Strom als dein sparsamster Rechner + Monitor, ... Was bei dir aber anscheinend an erwiesener Inkompetenz scheitert ... ...
    (de.comp.os.unix.linux.misc)
  • Re: Space Ship 2 vorgestellt
    ... Kompetenz fuer wirkliche orbitale Systeme ist Null, ... groesseren Unternehmen als Scaled Composites. ... Parabelflieger, ...
    (de.sci.raumfahrt)
  • Re: verknuepfte liste umdrehen
    ... seit ungefaer vierzehhn Jahren nichts mehr mit Pascal ... Die Syntax zum Deklarieren von Funktionszeigern: ... deklariert einen Zeiger auf eine Funktion, ... fuer einen Aufruf. ...
    (de.comp.lang.c)