2012-06-26 210 views
0

我不知道導入的差異,幷包含在Object-cimport =動態鏈接? &include =靜態鏈接?

順便說一句,我不清楚動態鏈接和靜態鏈接的區別。

如果我使用靜態鏈接的庫, 是否意味着我複製了我的程序庫所需的代碼並與它們鏈接? 然後我的程序可以使用庫中的代碼。

如果我用動態鏈接庫, 是不是意味着我只能引用我的程序運行時,我從圖書館到我的程序需要的代碼。 然後我的程序可以使用「參考代碼」。

回答

2

#import#include和靜態與動態鏈接是兩個完全不相關的主題。

#include將文件的內容直接包含在另一個文件中,並且在C中(因此也在Objective-C中)中可用。然而,僅當那個文件尚未被包括在內時,纔想要包括文件的內容是很常見的。 (例如,您不需要聲明兩次相同的變量;這會導致編譯器錯誤!)這就是爲什麼在Objective-C中添加了#import;它確實如此:僅當該文件尚未被#import編輯時才包括文件的內容。如果您不確定要使用什麼,則應該使用#import

靜態與動態鏈接是完全不同的 - 聯後編譯發生,所以它不可能涉及到#import#include,這是源代碼的一部分。然而,您對鏈接的想法是完全正確的 - 靜態鏈接庫包含在您的應用程序中,而您的用戶不需要它們。動態鏈接的庫被引用,並且必須存在於用戶的計算機上才能運行。

+0

非常清楚和簡單的答案:) thx很多 – code4j