我理解
之间的区别#include "xyz"
和
#include <xyz>
就每种情况下搜索的位置而言。
我想知道是否存在根据搜索和链接完成的排序。文件是否使用
#include "xyz" //as this is done in current working directory
在使用链接文件之前链接
#include <xyz>
答案 0 :(得分:2)
预处理器包含与链接无关。这是一种常见的误解。
没有假设任何一个包含对应于被链接的东西。请注意,标准库有许多标题,但通常只在链接发生时由单个库组成。
例如gcc(和大多数其他编译器)你可以先编译一个C文件,然后编译一堆其他的C文件,然后最后用所有必需的外部库链接所有目标文件。当您进行链接时,您将对已编译的文件(目标文件和库)进行操作;这些文件对预处理器指令在原始源中出现的顺序一无所知,但早已不复存在。
答案 1 :(得分:1)
#include "file"
将在搜索包含路径之前搜索当前目录。没有机制来指定目标文件的链接顺序。
答案 2 :(得分:1)
#include file
指令告诉预处理器将指定的file
的内容视为出现在指令出现点的源程序中。
与链接无关。