巨集和列舉及typedef

2021-06-20 06:59:09 字數 1999 閱讀 6957

巨集和列舉及typedef

巨集和列舉及typedef三者有相似的功能,但又有各自獨特的用途和特點,以下主要介紹三者的用法和注意事項。

1.      列舉

a.列舉的目的值提高程式的可讀性。

b.列舉型別的宣告是指用一組符號名稱來代替一組整數常量。

c.列舉常量都是整數型別的。

d.在宣告列舉型別時如果沒有對符號名稱給予指定的值時,第一的符號名稱代表的值為0,往後符號名稱依次增1。如下**及結果。

f.當一組巨集是連續的相差為1的值時可以用列舉來代替。

2.      typedef

typedef是給資料型別定義新的名字,雖然巨集也可實現這個功能但是一般不用巨集去實現。以下**是typedef和巨集定義型別新的名字的區別,

#include

#define ptochar char*    //

末尾沒有分號

typedef

char* p_to_char; //

末尾有分號

int main()

;        //合法

//int iarray2[onevar];              //錯誤

const

int towvar = 3 * onevar;      //合法

//const int threevar = 3 * onevar;  //錯誤

int main()

{//staticconst int threevar = 3 * onevar;  //錯誤

const

int threevar =3 * onevar;//合法

return0;

f.運用符號「#」可在巨集中用巨集引數建立字串。

#include

#define print(name) printf("my name is"#name"!\n")

int main()

{intntemp = 5;

print(ntemp);       //

以"ntemp"

構建字串

,不去訪問

ntemp的值

print(czs19910328); //

以"czs19910328"

構建字串

g.在巨集中可以用「##」把兩個語言符號組合成單個語言符號。

巨集 列舉 typedef

預處理也稱為預編譯,為編譯做預備工作,主要進行 文字的替換工作,用於處理 開頭的指令,其中預處理器產生編譯器的輸出。同乙個處理階段所進行的工作只是純粹地替換與展開,沒有任何計算功能。c c 標頭檔案的ifndef define endif的作用 如果乙個專案中存在兩個c檔案,而這兩個c檔案都incl...

列舉 共用體 typedef與巨集定義

c 語言列舉型別 實際問題中,有些變數的取值被限制在一定範圍內。例如,乙個星期內只有七天,一年 只有十二個月,乙個班每週有六門課程等。c 語言提供了一種列舉 enum 型別,可以列出所有可能的取值。定義形式為 enum 變數名 這些值也稱為列舉元素。注意最後的分號 不能少。例如,列出乙個星期有幾天 ...

C C 巨集定義及typedef用法

include include 數字和字串 define family 5 2 1 姥爺,爸爸,媽媽,姐姐,我 托尼,coco 肉肉 define larry age 21 運算 define square x x x define xsquare x x x 確保先進行括號內運算 define m...