編譯預處理器是C語言編譯器的一個重要組成部分。很好的利用C語言的預處理命令可以增強代碼的可讀性,靈活性,和易于修改等特點,便于程序的結構化。 預處理命令由符號“#”開頭,包括宏定義,文件包含,條件處理三個部分。 其中條件編譯我還沒有用過,所以就詳細介紹一下宏定義和文件包含。 一.宏定義 宏定義命令為#define,它的作用就是實現用一個簡單易讀的字符串來代替 另一個字符串。增加程序的可讀性,和維護性。 宏定義分為不帶參數的宏定義,和帶參數的宏定義。 不帶參的宏定義: 一般格式:#define 標識符 常量表達式 例如用一個字符代替一個常數 #define PI 3.1415926 當程序中出現3.1415926這個常數的時候就可以用PI這個字符代替,如果想修改這個常數只需要修改這個宏定義中的常數,就可以達到修改整個文件中這個常數的目的。這就是增加維護性的體現。 使用注意: 使用中#define 和標識符之間必須留有空格,標識符和常量表達式之間也必須有空格。 帶參數的宏定義: 帶參數的宏定義和不帶參數的宏定義之間的區別在于,帶參數的宏定義不只是進行字符串的替換,而且還要進行參數的替換。注意是參數替換。 格式: #define 宏符號名(參數表) 表達式 如: #define MIN(x,y) (((x)51.h的頭文件,而你的源代碼目錄里也有一個你自己寫的at89c51.h頭文件,那么使用尖括號時用的就是系統里的;而使用雙引號的話則會使用你自己寫的那個。 所以建議: 使用系統里提供的頭文件時使用尖括號 使用自己編寫的頭文件時使用雙引號 典型的頭文件內容包括: 1:說明文字。用于注釋該頭文件的主要內容,函數的作用,函數的接口等 2; #define 命令命名的宏定義 3:類型定義。包括結構體,共用體,數組等類型定義 |