nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Muss bool üblicherweise initialisiert werde n? Problem mit MinGW 3.4.5, welche Ve rsion benutzen?

Von: Edzard Egberts (ed_08@tantec.de) [Profil]
Datum: 08.04.2008 16:51
Message-ID: <ftg0p1$l6a$00$1@news.t-online.com>
Newsgroup: de.comp.os.ms-windows.programmer
Hallo,

gleich vorweg - wegen "compilerspezifisch" kann ich das leider nicht in
der C++-Gruppe fragen und hoffe, dass das hier jemanden interessiert:

Ich bin gerade aus allen Wolken gefallen, weil sich bool nicht mehr
invertieren ließ: Bool_Var= !Bool_Var;	ergibt immer true. Das passiert,
wenn ich die Bool_Var nicht initialisiere (z.B. Blinkflags, wo es mir
eigentlich egal ist, ob das Blinken mit "An" oder "Aus" startet), also

bool Bool_Var;		// statt bool Bool_Var= false;
Bool_Var= !Bool_Var;	// ist immer true

Der Debugger zeigt so für Bool_Var z.B. "115" an und beim Invertieren
wechselt das zwischen "115" und "114" - ein völlig unerwartetes
Verhalten. Interessanterweise funktioniert das bei einer Zuweisung
richtig, z.B.

int FehlerNr= 34;
bool Fehler= Fehlernummer;	// ergibt true, statt "34"

Ich halte das für einen groben Fehler - auch ohne Initialisierung darf
eine Variable doch nicht den Typ wechseln, sondern sollte die
Eigenschaften des entsprechenden Datentyps behalten, also zufällig
"true" oder "false" sein und nicht "115". Gibt es dazu
abweichende
Meinungen?

Hat hier jemand Erfahrungen mit der MinGW-4-Version, ist die brauchbar,
oder enthält die ebenfalls solche Fehler? MinGW 3.4.5 ist ja "current"
und ich habe das bis zu diesem Fehler für die "Produktivversion"
gehalten - 4,94 MB Quelltext meines aktuellen Projektes auf
Initialisierung von bool-Variablen zu prüfen, steigert meine
Produktivität aber nicht gerade. ;o(

Gruß,

Ed

[ Auf dieses Posting antworten ]

Antworten