Здравствуйте, igna, Вы писали:
I>Вот. То есть #include "./path/to/header.h" в той же мере "глупая конструкция" что и #include <./Dir/Header.h>.
Ну, я бы не сказал. В первом случае явное указание, новичкам поможет, а вреда не будет. Во втором я даже не знаю, что будет
Здравствуйте, Death_Mokar, Вы писали:
I>>А "./" нужен "для того чтобы указывать что путь начинается от текущей директории, а не от корня FS на юниксах"?
D_M>Да. В явном виде.
Неверно. Нужным в данном случае (напомню, что речь об инклюде) "./" не назовешь, он что есть, что его нет.
D_M>И это не фишка линукса. Так уж издревле пошло: "." — текущий каталог, ".." — родительский каталог...
Это фишка юникса. Не знаю уж, можно ли сказать, что это издревле.
Здравствуйте, igna, Вы писали:
I>Здравствуйте, Death_Mokar, Вы писали:
I>>>А "./" нужен "для того чтобы указывать что путь начинается от текущей директории, а не от корня FS на юниксах"?
D_M>>Да. В явном виде.
I>Неверно. Нужным в данном случае (напомню, что речь об инклюде) "./" не назовешь, он что есть, что его нет.
"нужен" <> "необходим", т.е. в данном контексте "нужен" == "используется для"
D_M>>И это не фишка линукса. Так уж издревле пошло: "." — текущий каталог, ".." — родительский каталог...
I>Это фишка юникса. Не знаю уж, можно ли сказать, что это издревле.
...ну, когда-то работая учителем информатики в школе, я учил детей этому под ДОС, уж не знаю считать ли это "издревлем"
Здравствуйте, Аноним, Вы писали:
А>>>>> команд-лайн шелл не исполняет файл который находится в подкаталоге относительно текущего если в начале не указать . _>>>>Не болтайте ерундой. А>>>а вы попробуйте _>>Я каженный божий день пробую по несколько раз. ЧЯДНТ? А>и файлы/скрипты которые вы исполняете не прописаны в PATH?
Не все.
А>если команда начинается не на ./ то файл ищется по PATH
Это не совсем так.
А>если на / — то ето рут
Не понял фразу. Вы можете выражаться яснее?
Если путь начинается с /, то это абсолютный путь, и искать ничего не надо.
А>если на ./ — файл ищется в текущем каталоге
Здравствуйте, igna, Вы писали:
I>Вот. То есть #include "./path/to/header.h" в той же мере "глупая конструкция" что и #include <./Dir/Header.h>. А то почитав твой первый ответ можно было подумать, будто в зависимости от использованных ограничителей точка с косой чертой в начале пути может иметь смысл или не иметь его. На самом деле они никогда не имеют смысла.
В специфических контекстах — могут иметь смысл: include_alias в MSVC:
#pragma include_alias("file.h", "path/file.h")
#include"file.h"// фактически - "path/file.h"#include"./file.h"// фактически - "file.h", требуется полное соответствие
Re[2]: Подведем итоги
От:
Аноним
Дата:
20.08.09 11:47
Оценка:
Здравствуйте, ChainEG, Вы писали:
CEG>Делаем вывод, что префикс "./" не нужен ни в #include<>, ни в #include"".
таки да, префикс ./ роли не играет, но кавычки и скобки играют