Article View: de.comp.lang.c++
Article #1559Re: scope von for-Zaehlern ?
From: Dietmar Kuehl
Date: Sat, 10 Feb 1996 20:48
Date: Sat, 10 Feb 1996 20:48
54 lines
2493 bytes
2493 bytes
Hi,
Thomas Riechmann (thomas) wrote:
: Wie ist es eigentlich mit dem Geltungsbereich von Zaehlervariablen in
: for-Schleifen? Meine Frage zielt auf folgendes:
: Das Programmfragment
: for( int i=0; i<10; i++ );
: for( i=0; i<10; i++ );
: wird von Turbo C++ (V.4.5) und gcc V. 2.6.3 anstandslos akzeptiert. gcc 2.7.2
: dagegen beschwert sich, ich muesse i in der zweiten Schleife neu deklarieren.
gcc-2.7.2 wurde in dieser Beziehung geaendert, um naeher am ISO C++
Standard zu sein (ISO C++ ist das, was eigentlich interessant ist, da
uns ANSI C++ nicht, sondern nur DIN C++ betreffen wuerde; allerdings
werden alle C++ Standards identisch sein).
: Deshalb meine zwei Fragen:
: 1. Welche Variante ist eher ANSI-C++-verdaechtig, d.h. wie sollte ich es
: schreiben, um dem kommenden Standard gerecht zu werden? (Bitte nicht: Erst
: ausserhalb der Schleifen i deklarieren, dann verwenden!)
Variablen, die innerhalb der for-Schleife deklariert sind, sind auch
nur dort bekannt. D.h. g++-2.7.2 hat recht (i.e. verhaelt sich so, wie
es ein ISO C++ Compiler tun sollte). Siehe auch 6.5.3 Vers 4 (stmt.for)
vom April DWP.
: 2. Kann ich vielleicht gcc 2.7.2 beibringen, dass es die erste Variante
: akzeptieren soll? Wenn ja, welcher Kompilerschalter / Parameter loest das
: Geheimnis?
Man kan gcc davon ueberzeugen, der alten Fassung zu entsprechen, indem
man '-fno-for-scope' angibt. Allerdings denke ich, dass man besser
beraten ist, die Sourcen so zu schreiben, dass das nicht noetig ist. Am
Besten schreibt man die Sourcen so, dass beide Fassungen unterstuetzt
werden:
for (int i1 = 0; i1 < 10; i1++);
for (int i2 = 0; i2 < 10; i2++);
oder
{ for (int i = 0; i < 10; i++); }
{ for (int i = 0; i < 10; i++); }
Beides ist nicht schoen, hilft aber beim Uebergang zwischen den
Compilern.
--
dietmar.kuehl@uni-konstanz.de
http://www.informatik.uni-konstanz.de/~kuehl
I am a realistic optimist - that's why I appear to be slightly pessimistic
Technical Details
Message-ID:
<311d0485.0@news.uni-konstanz.de>Path:
arc1-ca.pugleaf.net!news.uni-stuttgart.de!horn!kuehlReferences:
<4ffvfb$ho2@newsserver.rrzn.uni-hannover.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.uni-stuttgart.de!horn!kuehl From: kuehl@horn.informatik.uni-konstanz.de (Dietmar Kuehl) Newsgroups: de.comp.lang.c++ Subject: Re: scope von for-Zaehlern ? Date: 10 Feb 96 20:48:05 GMT Organization: Fakultät für Mathematik und Informatik Message-ID: <311d0485.0@news.uni-konstanz.de> References: <4ffvfb$ho2@newsserver.rrzn.uni-hannover.de> Reply-To: dietmar.kuehl@uni-konstanz.de NNTP-Posting-Host: minerva.rz.uni-konstanz.de X-Newsreader: TIN [version 1.2 PL2]