NULL 与 C 中的 0 有何不同?



如果这 3 行是 stdio.h 中唯一一次提到 NULL,那么 NULL 与 0 有何不同,最重要的是告诉编译器 NULL 实际上是一个无效地址? 谈到 C,也许在其他库中,比如在 iostream 中,NULL 的定义不同。

0085 #ifndef NULL
0086 #define NULL 0
0087 #endif

对于编译器来说,当用作指针时,NULL0没有区别。该标准实际上将0定义为空指针值,而标准库只是引入了一个方便的宏NULL定义为空指针值(通常为0((void*)0)(,以便您可以在代码中使用它以获得更好的可读性和表达意图。但NULL本身并没有什么特别之处;这是相关的0

对于编译器,所有0NULL''映射到相同的值。 但是,从可读性的角度来看,您可能希望根据上下文使用适当的值,以明确要执行的操作并提高代码审核和评审的效率。

相关内容

  • 没有找到相关文章

最新更新