Avatar ·

Qual é a diferença entre #include <filename> e #include "filename" em C++?

Olá, colegas! Sou um desenvolvedor C++ iniciante e me deparei com uma questão confusa. Em livros e exemplos de código, vejo duas formas de incluir arquivos de cabeçalho: 1. `#include ` — com colchetes angulares. 2. `#include "myheader.h"` — com aspas. À primeira vista, não há diferença — ambas as opções incluem o arquivo. Mas notei que as bibliotecas padrão (iostream, vector, string) são sempre escritas com colchetes angulares, enquanto meus próprios arquivos (por exemplo, "myclass.h") são escritos com aspas. Tentei escrever `#include "iostream"` — o código compilou e funcionou. Já `#include ` gerou um erro "file not found". Por que isso acontece? É apenas uma convenção de estilo ou há uma diferença técnica real? Estou especialmente interessado em: - Como o compilador procura arquivos em cada caso? - A escolha afeta o desempenho? - Existem situações em que se deve usar exatamente uma opção e não a outra? Aqui está um exemplo do meu código: ```cpp // main.cpp #include // func