c 函式呼叫到底是如何編譯的

2021-08-03 21:17:07 字數 507 閱讀 8767

總結一下c++本地函式呼叫的編譯過程,暫不考慮外部函式呼叫的編譯過程,那些涉及到鏈結的知識。

遇到函式呼叫語句

解析出函式的名字

解析出函式呼叫的引數資訊(引數個數和型別)

開始根據名稱查詢函式定義,查詢的過程是由內而外的,包括從內部作用域到外部作用域;從內層的命名空間到外層的命名空間;從子類到父類。查詢的原則是找到同名函式定義後停下,不再向外層查詢,而是在停下的層次中找到所有的同名函式定義,即為候選函式集

在候選函式集中根據函式呼叫的引數資訊來找出可選函式集,即可以通過直接匹配,型別隱式變換,模板引數特化等方式完成引數匹配的函式。

根據過載協議,在可選函式集中找出最優函式

如果最優函式不是虛函式,則完成靜態繫結。否則完成動態繫結(即根據對應虛表項在執行時確定函式位址).

以上的過程基本上包括了函式過載覆蓋隱藏虛函式。如有錯誤,請指正.

黑帽技術到底是如何實踐的

黑帽seo技術之權重轉移 相信大家也看過乙個新站權重5的站,在此之前,筆者一直疑惑,其實這就是黑帽中的權重轉移,權重轉移是通過hack手法拿到權重高,比如 站長網 通過拿到站長網的許可權,在首頁加一段黑帽301權重轉移 從而把權重轉移到新站。大家都知道301是永久重定向,黑帽seo中的權重轉移就是利...

GDPR到底是如何影響機器學習的?

摘要 gdpr時代來臨,你的機器學習模型還能訓練嗎?一般資料保護條例 本文主要討論gdpr與機器學習 ml 之間三個最常見的問題。1.gdpr 是否禁止機器學習?總的來說,在gdpr生效後,ml不會在歐盟被禁止。但是,從技術的角度來看,這個問題的答案是肯定的。gdpr作為法律條文,確實做出了對使用自...

GDPR到底是如何影響機器學習的?

一般資料保護條例 本文主要討論gdpr與機器學習 ml 之間三個最常見的問題。1.gdpr 是否禁止機器學習?總的來說,在gdpr生效後,ml不會在歐盟被禁止。但是,從技術的角度來看,這個問題的答案是肯定的。gdpr作為法律條文,確實做出了對使用自動化決策的全面禁止的規定。當gdpr使用 自動化決策...