Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » default-value für bool

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 ] > 2 <
010
27.01.2012, 08:45 Uhr
ao

(Operator)



Zitat von Caligulaminus:
Es gibt ja z.B. die (elegant einfache) Regel 0==false alles andere==true.

Das stimmt so nicht. Die (Zahlen-)Werte von true und false sind wohl definiert, und true ist 1. Nicht "alles andere als 0".

Wahr ist, dass "alles andere als 0" wie true zu interpretieren ist, aber es ist nicht dasselbe.

Und wie ich oben schon sagte, das ist ein Zugeständnis an die technische Funktionsweise von Mikroprozessoren. Und außerdem daran, dass man existierenden C-Code (für den "bool" nur eine andere Lesart von int ist) so weit wie möglich auch für die C++-Welt erhalten wollte.

Der Ausweg für Programmierer aus diesem Dilemma ist einfach: Verzichte auf den expliziten Vergleich mit true.

In einfachen Auswertungen (if, while, ...) nur schreiben:

C++:
if (b) // und nicht if (b == true)
{
  // ...
}



Mehrfachverzweigungen (switch) mit bool sind eigentlich Unsinn, aber wer es unbedingt machen will, schreibt so:

C++:
switch (b)
{
    case false:
    //  ...
    break;

    default:
    // ...
    break;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
27.01.2012, 21:18 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von Caligulaminus:

@0xdeadbeef, Hans:
In dem Zusammenhang würde mich interessieren, ob Ihr im debug-Modus unterwegs wart, und wenn ja, was die release-Version sagt.


die Option -d2 bedeutet, dass "symbolic debugging information" in den Code eingebunden werden; also ja, da war ich im Debugmodus unterwegs. Wenn ich die Option weg lasse, (also Release-Version, wenn man so will) kommt aber dass Gleiche raus, nur die ausführbare Datei ist etwas kürzer. (Ach ja, und bei solch kurzen Testprogrammen arbeite ich immer auf der Kommandozeilen Ebene, weil es für mich einfacher ist. Die IDE produziert zuviel Overhead, der in solchen Fällen einfach nur überflüssig ist.)

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 27.01.2012 um 21:19 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ 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: