2013-07-12 183 views
3

我發現C++庫可以包括這樣:C++庫路徑包含

#include "..\example.h" 
#include ".\another_example.h" 

是用來做什麼的點?

+0

[當前和父路徑](http://edndoc.esri.com/arcobjects/9.2/net/shared/geoprocessing/sharing_tools_and_toolboxes/pathnames_explained_colon_absolute_relative_unc_and_url.htm)。 –

+1

Nitpicking,但重要的是:你不用這種方式包含一個庫,而是一個文件。包含指令將由*預處理器*處理。結果是編譯器編譯的* one *「翻譯單元」。 – CouchDeveloper

+1

即使在Windows上也應該爲路徑分隔符使用正斜槓('/')。也就是說,如果你希望你的代碼在開發環境以外的任何地方都有用。 「 –

回答

6

他們指示所包含的文件路徑是相對於包括文件的實際路徑this文章閱讀更多關於路徑分隔符。

.指向包括文件的實際目錄
..指向包括文件的實際目錄的父diretory

+0

你可能會*強調*這個給定的導入指令帶*引號*文件路徑是相對於*包含*文件的實際路徑 - 我懷疑其他海報不清楚;) – CouchDeveloper

+0

@CouchDeveloper是這樣的嗎? THX的提示。 –

+0

是的,看起來好多了;) – CouchDeveloper

3

雙點代表當前輸入路徑的父目錄。 單點代表點的左側當前輸入的路徑,用於表示您想要相對路徑。

相對路徑是相對於 用戶或應用程序的工作目錄的路徑,所以完整的絕對路徑不必是 給出。

如果您啓動與/或路徑(在* nix系統)DRIVELETTER:(在Windows上,例如D:),那麼路徑是絕對的。如果你不這樣做 - 路徑是相對的。如果路徑是相對的 - 它會自動將文件的目錄前綴到輸入的路徑。

實施例:

"dir/././../dir/.."是包含原始文件的目錄。的減少是:

dir/././../dir/.. - >dir/./../dir/.. - >dir/../dir/.. - >/dir/.. - >. - >工作目錄。我們刪除了./,因爲它是當前目錄的別名。我們刪除/dir/..,因爲我們進入一個目錄,dir並取回與..

之一的./最經常使用的功能(但是在外殼的情況下,如bash) - 它強制使用相對路徑,而不是調用$ PATH變量中的可執行程序。例如,如果您在* nix的終端中鍵入ls,它將列出工作目錄中的文件。如果輸入./ls,它將在當前工作目錄中運行可執行文件名稱ls 並執行該程序所做的任何操作。

您可以在維基百科

+0

'」dir /./../ dir/..「'是當前目錄 我不明白... – chipp

+0

@chipp,請參閱更新 –

+0

您的示例比清除問題更令人困惑的OP。此外,您不解釋「工作目錄」或「當前目錄」的含義。這些在其他情況下具有其他含義,並且與這種情況下的含義不同。所以,我懷疑你也不清楚。 – CouchDeveloper

0

兩點意味着比目前更高的一個一個目錄。例如,如果您位於目錄C:\ some \ directory中,則「.. \」將爲「C:\ some」。

單點指的是當前目錄。 「。\」意思是「C:\ some \ directory」

0

一個點是你的當前目錄,兩個點是你的父目錄。

0

一個點.是文件的目錄

2點..是文件的父目錄。