Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » in mingw variablen deklarieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.08.2003, 17:23 Uhr
kronos
Quotenfisch
(Operator)


hi!
ich bin auf mingw umgestiegen und habe festgestellt, dass wenn ich variabeln innerhalb einer funktion deklarieren will, dies zu beginn der funktion geschehen muss, vor jeglichem anderen code. sonst bekomme ich "parse error".
nun kenn ich aber zur compilerzeit den type bestimmter variablen noch nicht und würde diese gerne innerhalb eines switches deklarieren, was ja leider nicht geht.
was würdet ihr für eine lösung vorschlagen bzw. mach' ich irgendwas falsch?
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.08.2003, 17:26 Uhr
0xdeadbeef
Gott
(Operator)


In C89 müssen Variablen am Anfang der Funktion deklariert werden, in C99 gehts auch woanders. Probier mal, den gcc mit

C++:
$ gcc --std=c99 *weitere Optionen und source-dateien*


aufzurufen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.08.2003, 20:37 Uhr
kronos
Quotenfisch
(Operator)


das mag' er nich', "unknown c-standart" sagt der...
in meiner doc steht, dass es -fstd=c99 heißen muss, das versteht er aber überhaupt nicht.
kann man das irgendwo 'runterladen?
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.08.2003, 22:44 Uhr
virtual
Sexiest Bit alive
(Operator)


Variablen müssen nicht zwingend am Anfang einer Funktion deklariert werden, auch nicht beim c89, sondern können auch zu beginn eines Block deklariert werden. für Dein Problem scheit es mir daher ausreichend, die Anweisungen des jeweiligen case in einen Block zu schreiben, etwa so:

Ich denke, sowas geht ohnhin nicht:

C++:
void f(int c)
{
   switch c:
   {
   case 1:
       {
           int a = 1;
           ...
        }
        break;
   }
}


Allerdings sollte Dir klar sein, daß du - die variablen auch nur innerhalb des Blocks nutzen kannst. Allerdings würde das auch ohne einen Block nicht gehen (jedenfalls bei einem switch), deshalb ist das keine Einschränkung.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.08.2003, 23:10 Uhr
kronos
Quotenfisch
(Operator)


ach so, alles klar. dann werd' ich das sowieso neu strukturieren müssen. vielen dank ihr beiden, bin wieder um eine erfahrung reicher
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: