5.5 在使用非全零作为空指针内部表达的机器上,NULL是如何定义的
跟其它机器一样: 定义为0 (或某种形式的0; 参见问题5.4)。
当程序员请求一个空指针时, 无论写“0” 还是“NULL”, 都是有编译器来生成适合机器的空指针的二进制表达形式。因此, 在空指针的内部表达不为0 的机器上定义NULL 为0 跟在其它机器上一样合法:编译器在指针上下文看到的未加修饰的0 都会被生成正确的空指针。
参见问题5.2、5.8 和5.14。
当程序员请求一个空指针时, 无论写“0” 还是“NULL”, 都是有编译器来生成适合机器的空指针的二进制表达形式。因此, 在空指针的内部表达不为0 的机器上定义NULL 为0 跟在其它机器上一样合法:编译器在指针上下文看到的未加修饰的0 都会被生成正确的空指针。
参见问题5.2、5.8 和5.14。