Warum benutzt man fast immer BOOL statt bool?
-
In den meisten MFC-Programmen sehe ich häufig den Ausdruck BOOL
z.B. inBOOL CMyApp::InitInstance() { m_pMainWnd = new CMyFrame(); m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE; }Warum benutzt man hier keinen herkömmlichen C++ Ausdruck bool, auch wenn er verfügbar ist?
Danke.
-
Weil die MFC noch aus Zeiten ist, als C und C++ noch kein bool kannten. Deshalb gabs damals das BOOL-Makro. Heute würde das natürlicher keiner mehr machen, wenn jemand eine Library von Grund auf neu entwickeln würde.
Bei der MFC ist es also historisch bedingt.
-
Jetzt ist das völlig klar.
Danke.
-
Schau mal in die windef.h
Dort findest Du nebentypedef int WINBOOL,*PWINBOOL,*LPWINBOOL; #ifndef XFree86Server #ifndef __OBJC__ typedef WINBOOL BOOL; #else #define BOOL WINBOOL #endifauch
#ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endifanstelle true und false.
Kennt jemand den Sinn von WINBOOL?
-
Naja... eigentlich ist BOOL doch eh nur in Windows anzustreffen. Warum manche so goil darauf sind den zu benutzen? ka
vllt weil man dann bsw folgendes machen kann 
BOOL bStupid = FALSE; ++bStupid;
-
eigentlich ist BOOL doch eh nur in Windows anzustreffen.
Was heißt nur? MS Windows ist im PC-Bereich immer noch das vorherrschende Betriebssystem.

-
(D)Evil schrieb:
Naja... eigentlich ist BOOL doch eh nur in Windows anzustreffen. Warum manche so goil darauf sind den zu benutzen? ka
vllt weil man dann bsw folgendes machen kann 
BOOL bStupid = FALSE; ++bStupid;Hat durchaus auch noch andere Gründe. Z.b. wenn du einen alten und einen neuen BOOL Wert hast, kannst du was interessantes machen um zu sehen ob was verändert wurde, bzw. ob etwas in einer Zählliste dazugefügt werden muss, abgezogen oder stehen gelassen:
// BNew und BOld sind vom Typ BOOL // nCount ist vom Typ int nCount += (BNew - BOld);Wenn BOld und BNew gleich sind, wird nix verändert. Wenn BNew TRUE ist und BOld FALSE, wird eins dazu gezählt. Wenn BNew FALSE ist und BOld TRUE, wird eins abgezogen. Wenn du dafür die bool's verwendest, bekommst du immer blöde Warnungen, bei BOOL nicht.

Grüssli