[linux-l] Designfrage bzgl. Deckverwaltung

Steffen Dettmer steffen at dett.de
Fr Nov 25 23:00:12 CET 2005


* Frank Reker wrote on Fri, Nov 25, 2005 at 19:18 +0100:
> >Erstens ist das mit Zeigern genauso, und zweitens schreibt man an const
> >halt const ran :-) 
> 
> retval = myfunc (var);
> geh ich zuerst mal von einer wertuebergabe aus, 

Ist ja kein C, sondern C++.

Das funktioniert ja auch nur genau für zufällig int's und sowas, in der
Praxis hat man ja in C dann "struct irgendwas*", und da (also fast
immer) hat man das gleiche Problem: Wenn Du es wissen musst, musst Du
halt gucken, ob und welche "const" qualifier benutzt wurden. Aber
eigentlich sollte man IMHO eh wissen, was Parameter bedeuten, find ich
;)

> also hat var nachher den selben wert wie vorher. in c++ allerdings
> nicht, wenn myfunc als: int myfunc (int &var); definiert wurde. 
> ich muss mir also erst die definition von myfunc ansehen um das zu
> wissen. im ersten fall seh ich sofort, im aufruf, dass es sich um 
> eine referenz handelt.

Ja, und dann deklariert man nicht "int *var", sondern "piVar", damit man
immer gleich sieht, dass es ein Pointer auf einen Int ist, schon klar,
aber inzwischen sind die Compiler nicht mehr ganz so schlecht. Obwohl
ich das alles akzeptiere, wenn Du aus irgendwelchen Gründen tatsächlich
für Compiler aus den 80er oder frühen 90er Code schreiben musst :)

> im zweiten fall wird sowas leicht uebersehen und fuehrt dann zu schwer
> auffindbaren fehlern.

Verwendet man Pointer, kann z.B. wieder NULL bei rauskommen. Das führt
zu schwer auffindbaren Fehlern, finde ich.

Aber vielleicht auch Geschmackssache; besonders natürlich, wenn man C
gewohnt ist und einen ähnlichen Stil behalten möchte oder wenn man gar C
mischen muss (wo es ja gar keine Referenzen gibt :)).

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l