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

2023-07-06   


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


相关内容:

  1. 如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
  2. 用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
  3. NULL是什么,它是怎么定义的
  4. 如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
  5. 怎样在程序里获得一个空指针
  6. 空指针到底是什么