据我所知,在预处理阶段,代码中所有出现的NULL都将替换为0。然后,在编译期间,指针上下文中所有出现的0都将替换为代表该机器上NULL的适当值。因此,编译器必须知道该特定机器的NULL值。
现在,这意味着每当我在指针上下文中使用0时,它将被表示该机器上NULL的适当值替换,该值可以为0,也可以不为0。 ,当我在指针上下文中使用0时?
很抱歉,冗长的描述。如果我错了请纠正我
一种方法是将全零位存储到指针中:
void* zero;
memset(&zero, 0, sizeof(zero));
Run Code Online (Sandbox Code Playgroud)