2016-02-20 45 views
0

我在github上發現了一個pacman project,其中一個文件conf.c包含頭文件#include "ini.h"其中ini.h只包含一個單行(即沒有0​​聲明)的名稱:能否C頭文件只能指定另一頭文件

//ini.h

../common/ini.c 

我從來沒有見過這樣做過的人!這似乎有點hackish /粗糙的邊緣。我的問題是:

  • 這是合法的C?
  • 它是否便攜?
  • 是否推薦?

我會認爲答案應該是沒有對所有這些問題,但我可以學習新的東西......

編輯

從答案,我看到它一個Linux符號鏈接。我想這意味着它不能移植到Windows上,並且也會使它在unix環境之外閱讀變得更加困難。我還猜想,使用相對路徑(或包括目錄),而不是符號鏈接將是這樣的上述理由情況下,更好的做法......

+0

存儲庫中的conf.c位於何處? – MikeCAT

+1

也許符號鏈接?你在什麼操作系統上? – Michael

+1

我發現它和該網站表明它是一個符號鏈接。 https://github.com/Alexpux/MSYS2-pacman/blob/master/src/pacman/ini.h – MikeCAT

回答

1

src/pacman/ini.h是根據站點的符號鏈接。

符號鏈接有在目標文件(路徑名)的信息,我想它是什麼顯示在網站上。

操作系統會將訪問重定向到ini.h../common/ini.h,這是一個普通的C代碼。

0

我看不出有任何理由不。 include聲明表示編譯器將該行替換爲包含文件中的內容