Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 ?

like image 973
Niklas Rosencrantz Avatar asked Sep 13 '13 08:09

Niklas Rosencrantz


1 Answers

#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

like image 168
Yu Hao Avatar answered Sep 30 '22 10:09

Yu Hao