我的理解总是通过#include <header.h>它在系统中查看包含目录,并且#include "header.h"它在本地目录中查找.但我只是查看python源代码,它使用该"header.h"方法在兄弟目录中定义标头.
所以py3k/Python/ast.c它确实如此#include "Python.h".但是Python.h在py3k/Include/Python.h
这是我从未见过的常见问题,没有参与任何真正的大型C项目吗?我怎么说,至少我的IDE,看看py3k/Include?
更新
我想出了如何告诉我的IDE包含它们,只是我是愚蠢和拼写错误.但我更感兴趣的是为什么""有效.是不是之间的不同""和<>?
两者#include <header>并#include "header"查看"实现定义的位置",即它取决于您使用的编译器及其设置.因为#include <h>它通常是一些标准系统包括目录和你配置编译器另外查看的任何内容.
两个版本之间的区别在于,如果搜索#include "header"不受支持或失败,它将被重新处理"就像它读取一样#include <header>"(C99,§6.10.2).