巨集和列舉及typedef
巨集和列舉及typedef三者有相似的功能,但又有各自獨特的用途和特點,以下主要介紹三者的用法和注意事項。
1. 列舉
a.列舉的目的值提高程式的可讀性。
b.列舉型別的宣告是指用一組符號名稱來代替一組整數常量。
c.列舉常量都是整數型別的。
d.在宣告列舉型別時如果沒有對符號名稱給予指定的值時,第一的符號名稱代表的值為0,往後符號名稱依次增1。如下**及結果。
f.當一組巨集是連續的相差為1的值時可以用列舉來代替。
2. typedef
typedef是給資料型別定義新的名字,雖然巨集也可實現這個功能但是一般不用巨集去實現。以下**是typedef和巨集定義型別新的名字的區別,
#includef.運用符號「#」可在巨集中用巨集引數建立字串。#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;
#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...