[linux-l] Re: do{ . } while (0)

Jan-Benedict Glaw jbglaw at lug-owl.de
Do Nov 24 09:05:09 CET 2005


On Thu, 2005-11-24 07:52:34 +0000, Rocco Rutte <pdmef at cs.tu-berlin.de> wrote:
> >...und viele derer, die es wissen, benutzen es wissentlich nicht. Ich
> >finde es ganz schön, wenn man einmal, am Anfang der Funktion, sieht,
> >welche Variablen benutzt werden. Mal schnell on the fly noch ein paar
> >weitere benutzen zu können ist nett, erhöht aber IMHO nicht die
> >Lesbarkeit.
> 
> NACK, weil es durchaus Situationen gibt, in denen man das will. Wenn man 
> längere Funktionen hat im Sinne von "passt nicht auf einmal auf den 
> Schirm", dann kann das Feature praktisch sein, wenn man die Variable 
> lokal in einem Block definiert, der nur selten ausgeführt wird, statt 
> sie global in der ganzen Funktion sichtbar zu machen. Dann kann man 
> nämlich auch lange mit Suchen und Zweifeln verbringen, wieso Variable XY 
> jetzt überhaupt gebraucht wird.

Funktion zerlegen? Hilft bei unübersichtlich langen Funktionen
manchmal...

> Oder wenn man in einer von X case-Anweisungen mal eine Variable braucht, 
> macht es mehr Sinn, IMHO, da einen Block zu nehmen statt sie in der 
> ganzen Funktion zu haben.

switch () {} bringt selbst inen Block mit, man kann also direkt darin
Variablen definieren:

	:
	:
	switch (foo) {
		int i;

		case CASE1:
			:
			break;

		case CASE2:
			:
			break;
	}
	:
	:

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 für einen Freien Staat voll Freier Bürger"  | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20051124/67d490ee/attachment.sig>


Mehr Informationen über die Mailingliste linux-l