Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#6

Re: [BCB] C++ Entsprechung zu Operator "is"

  Alt 18. Apr 2008, 20:11
Zitat von Muetze1:
2. Warum vergleichst du eine Instanz auf 0 anstatt auf NULL?
Was genau spricht dagegen? Defacto ist es portabler. NULL hingegen ist in einigen Implementationen typisiert (oder, schlimmer, mit #define und C-Typecast definiert) und dann wird es bei manchem C++-Compiler (und mitgelieferten Headern) mehr als nur eine Geschmacksfrage, ob man 0 oder NULL benutzt.

Das wird allerdings ohnehin nur ein Problem wenn man C und C++ (bspw. dank Headern) mischt und so dank der Tatsache, dass der Praeprozessor keine Grenzen (wie Namespaces) kennt, in C++ ploetzlich mit sowas wie
Code:
#define NULL (void*)0
konfrontiert wird. In den meisten Faellen wird das dann an der strikten Typisierung von C++ scheitern. Und in C++-Headern wird in den meisten Faellen ohnehin direkt stehen:
Code:
#define NULL 0
so dass es irrelevant wird.

Das schoene an der 0 ist ja gerade, dass sie keinerlei Einheit braucht (bzw. Typ im C++-Jargon) um einen Sinn zu machen. Wenn man mal den Code nach dem Durchlauf des Praeprozessors anschaut, ist da ohnehin kein Unterschied mehr. Aber eben wenn man C und C++ Header mischt oder aehnliche Dinge tut, die bewirken, dass das
Code:
#define NULL 0
eben gerade nicht gilt. Dann ist es ein kleiner bis riesiger Unterschied, je nach Kontext. Bei den Worten "je nach Kontext" werden sich bei jedem erfahrenen Entwickler die Fussnaegel aufrollen!
  Mit Zitat antworten Zitat