Why are there two ways of expressing NULL in C?
Let’s consider this example code: #include <stddef.h> int *f(void) { return NULL; } int g(int x) { return x == NULL ? 3 : 4; } We want f to compile without warnings, and we want g to cause an error or a warning (because an int variable x was compared to a pointer). In … Read more