後台開發面試整理之C

2021-09-13 13:29:16 字數 794 閱讀 4637

對於一些平台,特定的資料型別只能從特定的位址進行讀取,隨意防止將導致錯誤。而更一般的情況是,如果不按照規定存放資料,將會造成讀寫效率上的損耗。比如32位的intel處理器通過匯流排訪問(包括讀和寫)記憶體資料。每個匯流排週期從偶位址開始訪問32位記憶體資料,記憶體資料以位元組為單位存放。如果乙個32位的資料沒有存放在4位元組整除的記憶體位址處,那麼處理器就需要2個匯流排週期對其進行訪問,顯然訪問效率下降很多。

對於結構體的對齊問題和編譯器有關,一般滿足一下規則:

1) 結構體變數的首位址能夠被其最寬基本型別成員的大小所整除;

2) 結構體每個成員相對結構體首位址的偏移量(offset)都是成員大小的整數倍,如有需要編譯器會在成員之間加上填充位元組(internal adding);

3) 結構體的總大小為結構體最寬基本型別成員大小的整數倍,如有需要編譯器會在最末乙個成員之後加上填充位元組。

在vc/c++中,棧的對齊方式不受結構體成員對齊選項的影響。總是保持對齊且對齊在4位元組邊界上。

虛函式的是c++的多型的一種。對於宣告虛函式的類,會建立乙個虛函式表,並為每個物件新增乙個隱藏的成員指標來指向該類的虛函式表。在繼承過程從,子類會繼承父類的虛函式表,當子類重寫虛函式時,會將對虛函式表中對應的函式進行修改。

當呼叫虛函式時,物件會先根據指標去尋找虛函式表,然後再找到對應的函式位址。因此,相比於靜態聯編的非虛函式,虛函式在效率上會有一定的損失。

對於乙個空的類來說,其物件大小為乙個位元組。而對於乙個空的具有虛函式的類來說,因為隱藏指標的存在,其大小為乙個指標所佔大小。

後台開發面試問題整理

最近實習招聘又開始了,被一些師弟問了面試會問到的問題,於是想把之前實習 校招被問過的問題整理出來,希望對需要的人有幫助。雖然下面很多問題,但面試時可以問的問題是乙個無限集,而且因人而異,只能作為一定的參考,如果把所有知識面都掌握得很牢固那問什麼都沒問題 這裡的問題也不是說要所有都能答得上來,能答大部...

後台開發面試問題整理

最近實習招聘又開始了,被一些師弟問了面試會問到的問題,於是想把之前實習 校招被問過的問題整理出來,希望對需要的人有幫助。雖然下面很多問題,但面試時可以問的問題是乙個無限集,而且因人而異,只能作為一定的參考,如果把所有知識面都掌握得很牢固那問什麼都沒問題 這裡的問題也不是說要所有都能答得上來,能答大部...

C 後台開發面試 STL相關

六大元件及其關係 空間配置器 容器 迭代器 演算法 仿函式 介面卡 記憶體管理 記憶體配置和物件構造 析構分開。使用雙層級配置器 第一級直接 malloc,free 第二級記憶體池 維護 16 個自由鍊錶 迭代器 一種智慧型指標 vector 動態分配的陣列,連續線性空間 維護 3 個迭代器 sta...