看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《ODEs (發奮丘溫泉隊)》之銘言: : 我知道preprocessor會找到preprocessor directive, 然後將標頭檔(程式裡用到的函 : 式的函式庫)引入到程式裡面; 又linker會將object code和函式庫連結起來產生可執行檔 : . 那問題來了, 照這樣看起來, preprocessor和linker的功能不是一樣? 還是有我誤會的 : 地方? 謝謝大家. 兩者引入的東西是不一樣的 preprocessor 所 #include 進來的東西是函式宣告 linker 所引入的東西則是函式實際執行的程式碼 拿電路來比喻的話 preprocessor 引入的宣告就像是晶片元件說明書 根據說明書的指示我要在電路的哪些地方留接頭 而 linker 引入的程式碼則是那塊晶片元件本身 linker 做的動作就是實際把那塊晶片給接上電路去 大概像是這個樣子 -- 'You've sort of made up for it tonight,' said Harry. 'Getting the sword. Finishing the Horcrux. Saving my life.' 'That makes me sound a lot cooler then I was,' Ron mumbled. 'Stuff like that always sounds cooler then it really was,' said Harry. 'I've been trying to tell you that for years.' -- Harry Potter and the Deathly Hollows, P.308 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.91
ODEs:謝謝你的回答. ^_^ 但是我還是有幾個疑點: 03/08 20:07
ODEs:1.你說preprocessor所#include進來的東西是函式宣告, 請問函 03/08 20:07
ODEs: 式宣告是指只有function prototype還是也包含整個block? 03/08 20:08
ODEs:2."linker所引入的東西則是函式實際執行的程式碼"說的程式碼 03/08 20:09
ODEs: 是指二進位機器語言(依照purpose大大說的應該是這樣, 還是 03/08 20:09
ODEs: 問一下好了)還是(函式標頭加整個block)? 03/08 20:09
ODEs:再麻煩一下了, 謝謝. <(_ _)> 03/08 20:10
LPH66:1.僅prototype 2.就是二進位碼 所以這兩個才會分開來講 03/08 20:42
ODEs:清楚了!!~感恩. ^_^ 03/08 20:49
james732:遲來的自推文 #1DgrW4a5 03/08 23:54
ODEs:也謝謝樓上~很清楚的例子!! 03/09 15:21