連結器與載入器與執行檔格式
關於連結器對弱符號(weak symbol)的處理,下列何者正確?
- A弱符號永遠優先於其他的定義
- B若有同名的一般(強)定義,就使用該定義;沒有的話則使用弱定義
- C含有弱符號的檔案無法連結
查看答案與解析
正確答案:B. 若有同名的一般(強)定義,就使用該定義;沒有的話則使用弱定義
弱符號是「若沒有其他定義就使用這個」的備用定義。在嵌入式軟體中,常見的用法是以弱符號準備中斷處理常式的預設處理,若使用者撰寫了同名的函式,就會被替換成該函式。強定義之間重複時會出現重複定義的錯誤,但與弱定義重複時則不會出錯。
- A. 相反,它會輸給強定義。
- B. 正確。可準備能被取代的預設定義。
- C. 可以正常連結。