Unterschied - NULL/0
-
Gibt es für den Compiler irgendeinen Unterschied zwischen
NULL und 0
FALSE und false
TRUE und true
?
Sollte NULL bei Argumenten an Funktionen und 0 für Zuweisungen verwendet werden?
LG
Philipp
-
Philipp! schrieb:
NULL und 0
NULL kann auch 0L oder ähnliches sein, sonst ist es das gleiche. In C (nicht C++!) kann NULL auch ein (void*)0 sein.
Viele benutzen NULL gar nicht mehr, aber wenn du es doch benutzen willst, solltest du es ausschließlich als Symbol für einen Nullzeiger benutzen (dazu ist es ursprünglich gedacht), nicht für die Zahl 0 und auch nicht für das Zeichen '\0'.FALSE und false
TRUE und true
FALSE und TRUE sind meines Wissens Windows-spezifische Konstanten, die für 0 und 1 stehen. false und true sind echte eingebaute C++-Konstanten des Typs bool. BOOL, FALSE und TRUE wurden irgendwann früher mal als notwendig erachtet, als es in C++ noch kein bool gab. Heute leben sie immer noch in dunklen muffigen Ecken der Windows-API.
-
[quote="Bashar"]
Philipp! schrieb:
FALSE und TRUE sind meines Wissens Windows-spezifische Konstanten, die für 0 und 1 stehen. false und true sind echte eingebaute C++-Konstanten des Typs bool. BOOL, FALSE und TRUE wurden irgendwann früher mal als notwendig erachtet, als es in C++ noch kein bool gab. Heute leben sie immer noch in dunklen muffigen Ecken der Windows-API.
Mir wurde mal erzählt das FALSE,TRUE, und BOOL sicherer seinen als bool,false,und true,
weil diese nicht wertbezogen sind, sondern ausgewechelt werden können, ohne
den quellcode zu ändern. Naja, falls jemals 0 true ist *g*
(Der selbe Dozent erzählte mir, das Templates zur Laufzeit ausgewertet würden :D)Devil
-
devil81 schrieb:
Mir wurde mal erzählt das FALSE,TRUE, und BOOL sicherer seinen als bool,false,und true,
weil diese nicht wertbezogen sind, sondern ausgewechelt werden können, ohne
den quellcode zu ändern.naja, blöd aber ist dass TRUE/FALSE/BOOL #defines sind und man sich nicht drauf verlassen kann ob FALSE == ~TRUE oder FALSE == !TRUE oder sonstwas ist. (bei winapi ist ja FALSE 0 und TRUE alles andere ausser der 0) aber woanders isses eben anders