Niklas Rosencrantz
Niklas Rosencrantz

Reputation: 26644

Correct way of defining NULL and NULL_POINTER?

As far as I know, C defines NULL like this:

#define NULL ( (void *) 0)

Then, how should we define NULL_POINTER ? I defined it the same in my program and it worked, but I suppose that is just a coincidence:

#define NULL_POINTER ( (void *) 0)

What would be the logical definition, if any ?

Upvotes: 10

Views: 27813

Answers (1)

Yu Hao
Yu Hao

Reputation: 122393

#define NULL ( (void *) 0)

and

#define NULL 0

are both valid. If you need to implement your own macro for null pointer, the same rule applies.

C11(ISO/IEC 9899:201x) §6.3.2.3 Pointers Section 3

An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant

Upvotes: 18

Related Questions