【问题标题】:Explain the difference between standard and user defined libraries? [duplicate]解释标准库和用户定义库之间的区别? [复制]
【发布时间】:2014-03-20 22:26:33
【问题描述】:

我想解释一下库#include 指令中 和“header.h”之间的区别。链接器究竟如何(在哪些位置)搜索文件?它以什么顺序执行搜索?

【问题讨论】:

标签: c


【解决方案1】:

当我们写 <stdio.h> 时,我们指的是系统包含目录中可用的头文件。当我们写#include <stdio.h>时,预处理器在系统包含目录而不是当前目录中搜索头文件。当我们写#include "stdio.h"时,预处理器开始在当前目录中搜索这个头文件,然后在其父目录中搜索。因此,如果我们编写自己的stdio.h,将其保存在当前目录中,并使用#include "stdio.h" 将其包含在程序中,那么将包含我们的头文件而不是系统头文件。

简而言之,如果我们使用尖括号 (<>),那么如果 系统。如果我们使用引号 (" "),则表示正在使用非标准标头。

【讨论】:

  • 这不一定是真的。这些预处理器指令之间的区别取决于实现。确定差异的唯一可靠方法是阅读特定编译器的文档。
  • "预处理器开始在当前目录中搜索此头文件,然后在其父目录中搜索。"在父目录中?没听说过。这并不是说没有编译器会以这种方式实现它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
相关资源
最近更新 更多