C 面試常見問題 01預處理與巨集定義

2022-03-31 07:56:58 字數 1104 閱讀 5094

預處理器是一些指令,它將指示編譯器在實際編譯之前需要完成的預處理。預處理必須要在對程式進行詞法與語義分析、**生成與優化等通常的編譯過程之前進行,經過預處理的程式不再包含之前的預處理命令。

所有的預處理器指令都以#號開始,並且前面不可以出現除了空白字元以外的字元。預處理器指令不是c++指令,所以不需要以結尾。所有的c++程式例項都有預處理器指令#include,這個巨集用於把頭檔案包含在原始檔中。

預處理器指令是c++統一規定的,但不是c++本身的組成部分,因此編譯器無法對其進行識別和編譯。

#define預處理器指令用於建立符號常量,這個符號常量被稱為巨集。在預編譯時,所有的巨集都會被替換成相應的字元,

#define debug		//debug是巨集

#define sqr(x) x*x //求兩個數的平方,注意陷阱

int a = 2;

cout#define min(a,b) (a內聯函式(inline)實現起來比帶引數的巨集更加方便與安全,因此帶引數的巨集已經較少使用了。

一下指令可以是程式有選擇的對部分原始碼進行編譯

#ifdef debug

//**

#endif

//如果之前已經在上面定義了debug,就會執行上面的**部分,否則在預處理階段就會直接跳過該部分,編譯器也不會對其進行編譯。

###預處理器運算子在c++和c中都可用:#用於將巨集的代替文字轉換為用引號引起來的字串,##用於連線兩個引數。

#define str(x)   #x

cout#define fmally_class(who) \

class fmally_##who;

#define add(arg_a,arg_b) printf(#arg_a"+"#arg_b"=%d\n",arg_a+arg_b)

int main()

菜鳥教程——c++預處理器

巨集定義的優缺點

面試 Oracle常見問題總結 01

物理體系結構 表空間,三大檔案 軟體體系結構 sga,後台程序.full backup incremental backup 累積 差異 物理備份 物理備份是最主要的備份方式。用於保證資料庫在最小的資料庫丟失或沒有資料丟失的情況下得到恢復。冷物理冷物理備份提供了最簡單和最直接的方法保護資料庫因物理損...

C 面試常見問題

1.引用和指標的區別 區別 1 引用不能為空,指標可以為空 2 引用必須初始化,指標不需要 3 引用初始化以後不能改變,指標可以改變初始化物件後的值 4 引用訪問物件後是直接訪問,指標訪問物件是間接訪問 5 引用大小是所引用物件的大小,指標大小是指標類本身的大小 6 引用沒有const,指標有con...

C 面試常見問題

智慧型指標的作用是管理乙個指標,因為存在以下這種情況 申請的空間在函式結束時忘記釋放,造成記憶體洩漏。使用智慧型指標可以很大程度上的避免這個問題,因為智慧型指標就是乙個類,當超出了類的作用域是,類會自動呼叫析構函式,析構函式會自動釋放資源。所以智慧型指標的作用原理就是在函式結束時自動釋放記憶體空間,...