Differenza tra parentesi angular e virgolette “” pur includendo i file di intestazione in C ++?

Possibile duplicato:
Qual è la differenza tra #include e #include “nomefile”?

Qual è la differenza tra parentesi angolari e virgolette " " pur includendo i file di intestazione in C ++?

Voglio dire quali file dovrebbero essere inclusi usando ad esempio: #include e quali file devono essere inclusi usando ad esempio: #include "MyFile.h" ???

È dipendente dal compilatore. Detto questo, in generale l’uso di " prioritizza le intestazioni nella directory di lavoro corrente rispetto alle intestazioni di sistema. <> solito viene utilizzato per le intestazioni di sistema.” Dalla specifica (Sezione 6.10.2):

Una direttiva di pre-elaborazione del modulo

  # include  new-line 

ricerca una sequenza di luoghi definiti dall’implementazione per un’intestazione identificata univocamente dalla sequenza specificata tra i delimitatori < e > e causa la sostituzione di tale direttiva con l'intero contenuto dell'intestazione. Come vengono specificati i posti o l'intestazione identificata è definita dall'implementazione.

Una direttiva di pre-elaborazione del modulo

  # include "q-char-sequence" new-line 

causa la sostituzione di tale direttiva con l'intero contenuto del file di origine identificato dalla sequenza specificata tra i " delimitatori " Il file di origine denominato viene cercato in un modo definito dall'implementazione. Se questa ricerca non è supportata o se la ricerca non riesce , la direttiva viene rielaborata come se leggesse

  # include  new-line 

con la sequenza identica contenuta (compresi i caratteri, se ce ne sono) dalla direttiva originale.

Quindi, sulla maggior parte dei compilatori, l'uso di "" controlla prima la directory locale e, se non trova una corrispondenza, passa a controllare i percorsi di sistema. Usando <> avvia la ricerca con le intestazioni di sistema.

Quando usi le parentesi angolari, il compilatore cerca il file nell’elenco dei percorsi di inclusione. Quando si usano le virgolette doppie, per prima cosa cerca la directory corrente (cioè la directory in cui è compilato il modulo) e solo allora cercherà l’elenco dei percorsi di inclusione.

Quindi, per convenzione, usi le parentesi angolari per gli standard include e le virgolette per tutto il resto. Ciò garantisce che nel caso (non consigliato) in cui si abbia un’intestazione locale con lo stesso nome di un’intestazione standard, verrà scelto quello giusto in ciascun caso.