程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 【好程序員筆記分享】——預處理,程序員筆記預處理

【好程序員筆記分享】——預處理,程序員筆記預處理

編輯:關於C語言

【好程序員筆記分享】——預處理,程序員筆記預處理


iOS培訓------我的c語言筆記,期待與您交流!

其實在C語言的遠行過程中,有這樣一個流程,

編譯:C----〉可執行文件(可以運行的)

1:.C------.i 預處理(之前和之後還是C語法)
2: .i-------.s 編譯(之前是C語法,之後是匯編語法)
3: .s------.o 匯編
4: .o------可執行程序 鏈接

下面我們就來說說一說第一個步驟預處理階段:

一:預處理介紹

 

二:預處理中宏的定義無參宏定義
#define M (x+y+3+xy)帶參宏定義
#define M(x,y) (x+xy+3+xy)三:宏的使用main(){
  int Num = M;  int Num2 = M(2,5);  printf("%d, %d", Num, Num2);
}這裡我們就使用了上面定義的兩個宏,也就是實現了預處理命令的使用

四:常用預處理命令

e>預定義的宏(不能用undef取消)
C標准中指定了一些預定義的宏,對於編程經常會用到。下面這個表中就是一些常常用到的預定義宏。
__DATE__
進行預處理的日期(“Mmm dd yyyy”形式的字符串文字)
__FILE__
代表當前源代碼文件名的字符串文字
__LINE__
代表當前源代碼中的行號的整數常量
__TIME__
源文件編譯時間,格式微“hh:mm:ss”
__func__
當前所在函數名
對於__FILE__,__LINE__,__func__這樣的宏,在調試程序時是很有用的,因為你可以很容易的知道程序運行到了哪個文件的那一行,是哪個函數。
下面一個例子是打印上面這些預定義的宏的。

五:預處理總結

  • 1. 預處理功能是C語言特有的功能,它是在對源程序正式編譯前由預處理程序完成的。程序員在程序中用預處理命令來調用這些功能。
  • 2. 宏定義是用一個標識符來表示一個字符串,這個字符串可以是常量、變量或表達式。在宏調用中將用該字符串代換宏名。
  • 3. 宏定義可以帶有參數,宏調用時是以實參代換形參。而不是“值傳送”。
  • 4. 為了避免宏代換時發生錯誤,宏定義中的字符串應加括號,字符串中出現的形式參數兩邊也應加括號。
  • 5. 文件包含是預處理的一個重要功能,它可用來把多個源文件連接成一個源文件進行編譯,結果將生成一個目標文件。
  • 6. 條件編譯允許只編譯源程序中滿足條件的程序段,使生成的目標程序較短,從而減少了內存的開銷並提高了程序的效率。
  • 7. 使用預處理功能便於程序的修改、閱讀、移植和調試,也便於實現模塊化程序設計。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved