Wie funktioniert bool ?



  • Hi,

    @<Hendrik> : Bitte keine Doppelpostings mehr !

    @mod: Do close 😡



  • Vorsicht: bool ist kein ANSI C Standard

    laut MSDN:

    bool
    C++ Specific

    bool declarators;

    This keyword is an integral type. A variable of this type can have values true and false. All conditional expressions now return a value of type bool. For example, i!=0 now returns true or false depending on the value of i.

    Willst du's trotzdem benutzen solltest du den Datentyp entsprechend definieren:

    #ifndef __cplusplus
      typedef unsigned char bool;
    #endif
    

    Bei Abfragen kannst du true und false weglassen:

    bool b;
    ...
    if (b == true) {
    }
    ...
    if (b == false) {
    }
    

    hat den gleichen Effekt wie:

    bool b;
    ...
    if (b) {
    }
    ...
    if (!b) {
    }
    

    nochwas:
    bool kann für unterschiedliche IDE's unterschiedlich definiert sein, also möglichst in grössenabhängigen Strukturen vermeiden.
    wieder aus MSDN

    In Visual C++4.2, the Standard C++ header files contained a typedef that equated bool with int. In Visual C++ 5.0 and later, bool is implemented as a built-in type with a size of 1 byte. That means that for Visual C++ 4.2, a call of sizeof(bool) yields 4, while in Visual C++ 5.0 and later, the same call yields 1.



  • Original erstellt von groovemaster2002:
    Vorsicht: bool ist kein ANSI C Standard

    Doch, siehe kingruedi.



  • @groovemaster
    bool ist aber ein ANSI C typedef, der eigentliche Typ ist _Bool (siehe C99 Standard)

    @darkpenguin
    wilkommen im Jahr 2003, wie haben nun seit 4(!) Jahren _Bool, was von vielen C Compilern unterstützt wird (und wenn man pech hat, macht man sich eben sein eigenes define, aber ob man für 1/0 direkt ca 4 byte braucht, ist natürlich eine andere Sache...)



  • @SG1
    Doch, siehe kingruedi.

    stimmt schon, ich wollt's auch nur für Leute loswerden, die einen ALTEN 😉 Compiler haben, der lediglich die C89/C90 ANSI Norm beherrscht.



  • unter c++ ist bool ein eigener Datentyp und ich glaube hendrik benutzt c++builder (der thread wurde (falsch?) verschoben, btw. im c++ forum gibts ihn auch, nur bissel anders 😃 )



  • naja, hier werden andauernd C++-Threads reingeschoben... am besten man läßt das Antworten ganz bleiben, erspart einem ne Menge Zeit und Ärger



  • ne, der Thread wurde hier gepostet und einmal im C++Builder Forum und von dort in das C++ Forum verschoben. Ein Mod ist nicht Schuld! <Hendrik> ist schuld, wenn er nicht weiss was er benutzt.

    Also nochmal zum mitschreiben

    Nicht alles was C ist, ist C++ (und natürlich umgekehrt)



  • die meisten, die nicht wissen was sie programmieren, programmieren C++
    denn die nehmen einfach ihren Borland oder MS Compiler und fangen an zu schreiben ... C macht man entweder bewußt oder wenn man grad mal nur den LCC hat.



  • da hast du recht, verstehe aber trotzdem nicht, warum der Typ dann C mit dem Borland C**++** programmieren will 😕


Anmelden zum Antworten