C 面試基礎知識整理(1)

2021-10-18 08:28:56 字數 2533 閱讀 2496

檔案重定義

條件編譯

github:c++面試基礎知識總結

預處理,根據檔案中的預處理指令來修改原始檔的內容。如#include指令,作用是把頭檔案的內容新增到.cpp檔案中,產生.ii檔案,

編譯,將其翻譯成等價的中間**或彙編**,產生彙編檔案(.s檔案)

彙編,把組合語言翻譯成目標機器指令,產生目標檔案(.o或.obj檔案)

鏈結,例如,某個原始檔中的函式可能引用了另乙個原始檔中定義的某個函式;在程式中可能呼叫了某個庫檔案中的函式,產生可執行檔案(.out或.exe檔案)

c++98&c++11的區別

gcc -o0 -o1 -o2 -o3 四級優化選項及每級分別做什麼優化

**段:**段(code segment/text segment)通常是指用來存放 程式執行** 的一塊記憶體區域。這部分區域的大小在程式執行前就已經確定,並且記憶體區域通常屬於 唯讀 , 某些架構也允許**段為可寫,即允許修改程式。在**段中,也有可能包含一些 唯讀的常數變數 ,例如字串常量等。程式段為程式**在記憶體中的對映.乙個程式可以在記憶體中多有個副本.【儲存的是二進位制後的程式**】資料段:資料段(data segment,也叫**ar global value)通常是指用來存放程式中 已初始化 的 全域性變數 的一塊記憶體區域。資料段屬於靜態記憶體分配。【儲存全域性已初始化的變數】bss段:(bss segment)通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。bss是英文block started by symbol的簡稱。bss段屬於靜態記憶體分配。【儲存全域性未初始化的變數】

堆(heap):堆是用於存放程序執行中被動態分配的記憶體段,它的大小並不固定,可動態擴張或縮減。當程序呼叫malloc/free等函式分配記憶體時,新分配的記憶體就被動態新增到堆上(堆被擴張)/釋放的記憶體從堆中被剔除(堆被縮減)【儲存初始化的區域性變數】

棧(stack):棧又稱堆疊, 存放程式的 區域性變數 (但不包括static宣告的變數, static 意味著 在資料段中 存放變數)。除此以外,在函式被呼叫時,棧用來傳遞引數和返回值。由於棧的先進先出特點,所以棧特別方便用來儲存/恢復呼叫現場。儲動態記憶體分配,需要程式設計師手工分配,手工釋放**【儲存動態未初始化變數】**

c++——程式的記憶體結構

問題
堆和棧的區別

a* a = new a; a->i = 10;在核心中的記憶體分配上發生了什麼

全域性變數、static變數初始時間

// person.h

class

person

// worker.h

#include

"person.h"

class

worker

:public person

// farmer.h

#include

"person.h"

class

farmer

:public person

// person.h

#ifndif person_h

#define person_h

class

person

#endif

作用

使用

option(use_ros "use ros" on)

if(use_ros)

message(status "build with ros"

) add_defination(-d_ros_)

endif(use_ros)

if(use_ros)

# 通過判斷use_ros是否啟用來選擇性編譯下面指令

find_package(catking ...)

endif(use_ros)

#ifdef _ros_ 

// 與cmakelists.txt中use_ros或_ros_名稱一致

#include

#endif

C 基礎知識整理 C 基礎(1)

c 基本結構 1 變數定義 例,myfirstclass myfirstclass 2 如何變數的初始化 int a 0 string str string.empty int init a 2 3 變數的作用域 首先應該弄清楚private,protected internal和public的各自...

C 面試基礎知識整理(8)

元件描述 容器 containers 容器是用來管理某一類物件的集合。c 提供了各種不同型別的容器,比如 deque list vector map 等。演算法 algorithms 演算法作用於容器。它們提供了執行各種操作的方式,包括對容器內容執行初始化 排序 搜尋和轉換等操作。迭代器 itera...

面試基礎知識整理 樹

樹是由n n 1 個有限節點組成乙個具有層次關係的集合。把它叫做 樹 是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點 摘自維基百科 樹 所有元素最多有兩個節點 package tree created by song on 4 8 17.二叉樹節點 public cl...