6.5 在使用非全零作为空指针内部表达的机器上, NULL 是如何定义的?

跟其它机器一样: 定义为 0 (或某种形式的 0; 参见问题 5.4)。

当程序员请求一个空指针时, 无论写 ``0" 还是 ``NULL", 都是有编译器来生成适 合机器的空指针的二进制表达形式。因此, 在空指针的内部表达不为 0 的机器 上定义 NULL 为 0 跟在其它机器上一样合法:编译器在指针上下文看到的未加 修饰的 0 都会被生成正确的空指针。参见问题 5.2、 5.8  和 5.14

参考资料: [ISO, Sec. 7.1.6]; [Rationale, Sec. 4.1.5]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)