Argh: D не самый быстрый
Process.Start("notepad C:\test.txt");
<stdio.h>
выполняет поиск в стандартных местах библиотеки C, тогда как "stdio.h"
выполняет поиск и в текущем каталоге.
В идеале вы должны использовать <...>
для стандартных библиотек C и "..."
для библиотек, которые вы пишете и присутствует в текущем каталоге.
Вторая версия указана для поиска сначала в определенном для реализации месте, а затем, если файл не найден, искать в том же месте, что и версия <...>
, которая ищет в путях, обычно указанных в -I
опция командной строки и встроенные пути включения (указывающие на расположение стандартной библиотеки и системных заголовков).
Обычно реализации определяют это местоположение относительно местоположения включаемого файла.
<> указывает компилятору искать файл в заголовках библиотек и "" заставляет его искать среди заголовков вашего приложения.
Что касается того, почему они оба работают для вас, возможно, ваш компилятор также ищет имя файла в заголовках библиотеки, если он не нашел его среди вас.
#include <something.h>
предназначен для системных заголовков, а #include "something.h"
для заголовков вашей собственной программы. Системные заголовки ищутся в обычных системных каталогах (и включенных в аргумент -I
), которые ищут ваши заголовки в текущем каталоге, а затем в тех же местах, что и системные заголовки.
см. http://gcc.gnu.org/onlinedocs/gcc-2.95.3/cpp_1.html#SEC6
.Обычно стандартные заголовочные файлы заключены в тег < > и другие пользовательские файлы указываются с помощью ".