Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » array mit Konstante initialisieren

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
18.09.2008, 16:41 Uhr
banshee



hallo,

ich lese gerade den Petzold und bin auf folgende Aussage gestoßen: "Wenn sie ein array als lokale Variable in einer Funktion deklarieren und gleichzeitig mit einer Konstanten initialisieren wollen, müssen sie es als static kennzeichnen"

Das hier kompiliert aber einwandfrei:


C++:
void test()
{
    char a[] = "Test";
}

int main()
{
    test();

    return 0;
}


Warum?

An der Stelle gleich nochmal die Frage, ob VC Express überhaupt die richtige IDE für mich ist. Ich hab irgendwie das Gefühl, dass sie mir zu viel abnimmt, was ich eigentlich selber verstehen sollte und mich würds nicht wundern, wenn VC++ da wieder implizit irgendwie dran rumbastelt, bis das passt. Was benutzt ihr denn so?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.09.2008, 17:47 Uhr
xXx
Devil


Nö, da bastelt keiner was rum. Ich denke er will damit sagen, das du jetzt nicht return a; schreiben kannst, bzw. kannst du schon, aber da a danach zerstört wird, ist es danach nichtmehr gültig

ODER er will darauf hinweisen, dass es bei einer konst. ja ausreicht EINE Instanz davon zu haben, was man mit einem static erreichen könnte.


C++:
void foo() { static const char constante[] = "Test"; }

int main()
{
    foo();
    foo();
}
dann wird constante nur EINMAL erzeugt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.09.2008, 18:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


für mich gibt der satz eigentlich keinen sinn

wenn man sagt "als konstante" schon eher!
aber "mit einer konstanten" gibt eigentlich keinen sinn, warum sollte ich die variable statisch machen müssen(!) ?????

Naja denk mal Bücher haben auch so ihre Fehler, bzw kein Autor ist perfekt
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.09.2008, 18:47 Uhr
ao

(Operator)


Der Petzold ist aber nicht irgendein Buch, das ist "das" Buch über WinAPI, und ist schon in der x-ten Auflage erschienen. Würde mich wundern, wenn da noch immer so krasse Fehler drinstünden.

@banshee: Dein Code ist in Ordnung, soweit ich sehe. In welchem Zusammenhang steht das bei Petzold? Gibts irgendein Beispiel dazu?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.09.2008, 19:36 Uhr
banshee



Naja nicht wirklich. Er führt gerade über breite Zeichen zu Unicode hin und erklärt nur nochmal ein paar Sachen über chars und das is mir irgendwie aufgefallen.
 
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: