C++中 #include <filename> 和 #include "filename" 有什么区别?
大家好!我是一名C++初学者,遇到了一个不太明白的地方。在教材和代码示例中,我看到两种包含头文件的方式:
1. `#include ` — 使用尖括号。
2. `#include "myheader.h"` — 使用双引号。
乍一看,似乎没有区别——两种方式都能包含文件。但我注意到,标准库(如iostream、vector、string)总是用尖括号,而自己的文件(如"myclass.h")则用双引号。
我尝试写了 `#include "iostream"` — 代码编译并运行成功了。但 `#include ` 却报错 "file not found"。为什么会这样?这只是风格约定,还是存在实际的技术差异?
我特别想知道:
- 编译器在每种情况下是如何查找文件的?
- 选择哪种方式会影响性能吗?
- 是否存在必须使用某一种方式的情况?
以下是我的代码示例:
```cpp
// main.cpp
#include // 工作正常
```