发件人:Dennis Ritchie
主题:Re: Quotes vs. angle brackets in #includes
日期:1997 年 5 月 13 日星期二 00:04:00 -0400

正如其他人可能已经注意到的那样,实际标准和 K&R 2 在此问题上故意更加模糊。标准可能希望避免强制存在目录并定义其语义,以及“..”(上级目录)的概念,以及在文件名中使用 / 或 \ 或其他内容作为分隔符,等等。

人们提出的许多解决方案可能都符合标准,因此问题在于哪种约定最有 S用。我猜想对此有两种普遍的理论。

一种是相对的“...”包含文件是相对于原始源文件而言的,另一种是它们是相对于出现它们的文件而言的。总的来说,我已说服自己,第一种解释更有用且更易于理解。它能满足我最常遇到的情况,即希望从远处编译某个复杂的系统——源文件和相关头文件都在某个遥远的地方,但我不想阅读它们来发现它们的包含关系。

当然,拥有目录的系统通常会实现-I指令,这些指令(取决于你怎么看)要么因为你可以控制搜索而让你受益,要么因为你有时需要弄清楚-I需要什么东西而引入了进一步的混乱。

Dennis