Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

10.08.2006, 13:10

NULL

tag leute!

also, ich hab auf einem anderen forum gelesen wie sich manche darüber unterhalten haben, ob man NULL verwenden sollte.

da hats einige meinungen gegeben! NULL sei je nach compiler/sprache anders definiert

mal

C-/C++-Quelltext

1
#define NULL 0

oder

C-/C++-Quelltext

1
#define NULL (void*)(0) // so irgendwie .. kA ^^


auf jeden fall gings darum dass manche meinten dass NULL zu dubios sei, und dass man besser 0 verwenden soll! andere sagen aber dass sie sich das ei pointern angewöhnt haben NULL zu schreiben..

jetzt frage ich mich warum das keiner so macht:

C-/C++-Quelltext

1
2
3
4
5
#ifdef NULL
#undef NULL
#endif

#define NULL 0


oder

C-/C++-Quelltext

1
2
3
4
5
#ifdef NULL
#undef NULL
#endif

const unsigned long NULL = 0;


was soll die diskussion? was sagt ihr dazu leute?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Anonymous

unregistriert

2

10.08.2006, 13:20

Mh, also ich verwende NULL schon, aber nur bei Pointern, war aber
schonmal soweit, dass ich einfach nur 0 geschrieben habe, da ich define
nicht mag. Außerdem, wer VC++ 2005 nicht verwendet hat selber Schuld,
alle anderen Compiler sind sowieso Schwachsinnig, zumindest bei der Windows
Programmierung.

Aber so wie das aussieht, bringen doch deine aufgezählten Definitionen im
Grunde immer das selber Ergebnis, weiß gar nicht, warum die über so einen
Schwachsinn diskutieren, entweder sie verwenden es oder nicht, jeder wie
er will und fertig.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

10.08.2006, 13:41

ja... die meinen es sei unsicher, weils immer anders definiert sei

aber man kann ja einfach schreiben

#undef NULL
const unsigned long NULL = 0;

dann hast kein define mehr, und kannst bei pointern
int *pPointer = NULL;
schreiben

oder?

2 vorteile: du weißt wie NULL defniert ist, und du hast kein #define :)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

10.08.2006, 13:55

aus windef.h:

Quellcode

1
2
3
4
5
6
7
#ifndef NULL
#ifdef __cplusplus
#define NULL    0
#else
#define NULL    ((void *)0)
#endif
#endif


aus stdio:

Quellcode

1
2
3
4
5
6
7
#ifndef NULL
#ifdef __cplusplus
#define NULL    0
#else
#define NULL    ((void *)0)
#endif
#endif


time.h

Quellcode

1
2
3
4
5
6
7
#ifndef NULL
#ifdef __cplusplus
#define NULL    0
#else  /* __cplusplus */
#define NULL    ((void *)0)
#endif  /* __cplusplus */
#endif  /* NULL */


sieht irgendwie identisch aus oder? Weiss aber nicht ob es bei Borland etc. genauso ist.

Anonymous

unregistriert

5

10.08.2006, 14:29

NULL ist in C++ nichts anderes als ein const unsigned long NULL = 0;

In C ist dies jedoch ein "genullter" void-Pointer.

Man kann bei Pointern also in C++ NULL oder 0 schreiben um diese zu initialisieren. In C sieht das anders aus. Benutzt man NULL ist man definitiv auf der besseren Seite - da man direkt sieht das es sich um einen Pointer handelt. ;)

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

10.08.2006, 15:59

ich denke das wäre geklär ^^
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

8

10.08.2006, 16:41

Zitat

C-/C++-Quelltext

1
2
3
4
HRESULT Present(CONST RECT *pSourceRect, 
                CONST RECT *pDestRect, 
                HWND hDestWindowOverride, 
                CONST RGNDATA *pDirtyRegion); 



Würde man sie so aufrufen:

C-/C++-Quelltext

1
Present(NULL, NULL, 0, NULL); // So ist jedermann klar welche  
... hat der mal geguckt was nen HWND ist? ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige