prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 5.7

我的供应商提供的头文件#define NULL0L。这是为什么?


有些程序会不加思索地尝试通过宏生成空指针,不带强制类型转换,在非指针的上下文中。(这样做不能保证一定能正常工作;参见问题 5.25.11。)在指针大于整数的机器上(例如“大”模式下的 PC 兼容机;另参见问题 5.17),NULL例如NULL这样的定义0L可以帮助这些不正确的程序工作。(0L是一个完全有效的定义NULL;它是一个“值为 0 的整数常量表达式。”)是否应该迁就那些不正确的程序是有争议的;另参见问题 5.6 和第 17 章。

参考文献:Rationale 第 4.1.5 节
H&S 第 5.3.2 节 pp. 121-2


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管