typedef跟列舉變數。

2021-05-02 14:32:41 字數 1095 閱讀 1804

typedef enum

errorstatus;

這個**怎麼解釋?

這個語句的作用是為資料型別

enum

定義乙個別名errorstatus,這樣以後定義變數時就寫errorstatus a;就可以了,而不用寫較長的enum a;了.

typedef的用於其實很簡單,但是當typedef後面跟個列舉變數這麼大一陀**的時候就不不知怎麼理解了。真是不應該。

列舉是乙個被命名的整型常數的集合, 列舉在日常生活中很常見。

例如表示星期的sunday, monday, tuesday, wednesday, thursday, friday,saturday, 就是乙個列舉。

列舉的說明與結構和聯合相似, 其形式為:

enum 列舉名 列舉變數;

如果列舉沒有初始化, 即省掉"=整型常數"時, 則從第乙個識別符號開始, 順

次賦給識別符號0, 1, 2, ...。但當列舉中的某個成員賦值後, 其後的成員按依次

加1的規則確定其值。

例如下列列舉說明後, x1, x2, x3, x4的值分別為0, 1, 2, 3。

enum stringx;

當定義改變成:

enum string

x1,x2=0,

x3=50,

x4,}x;

則x1=0, x2=0, x3=50, x4=51

注意:1. 列舉中每個成員(識別符號)結束符是",", 不是";", 最後乙個成員可省略

2. 初始化時可以賦負數, 以後的識別符號仍依次加1。

3. 列舉變數只能取列舉說明結構中的某個識別符號常量。

例如:enum string

x1=5,

x2,x3,

x4,enum strig x=x3;

此時, 列舉變數x實際上是7。

enum   關鍵字在c中用的是比較多的,它常用來定義標記整型常量,你去看許多作業系統的源**,都有用這個關鍵字來一次定義許多標記整型常量,其實它相當於定義乙個整型常量的表,方便應用時查詢。當然他的大部分功能都可以被巨集定義代替,不過畢竟enum關鍵字定義的東東是支援型別檢查的,可以用編譯器來發現一些錯誤(enum定義的只能是整型的常量表)

巨集 列舉 typedef

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

define跟typedef的區別

你能回答下面的問題嗎?這段 typedef int pint pint a,b 和這段 define pint2 int pint2 a,b 的區別是什麼?如鵬網上很多同學都犯了類似的錯誤,詳見這個帖子 這道題把c語言中指標以及 typedef 和 define 的區別這兩個知識點融到了一起。下面分...

聯合,列舉與typedef

聯合,是乙個能在同一塊儲存空間儲存不同型別 不同時 資料的型別。因此為聯合的儲存空間為所有成員中佔據空間最大的。它允許建立乙個用於儲存乙個型別不定的值的變數。簡單點說,可以用該變數儲存char型別的,也可以用於儲存char 型別的,甚至是struct型別的。如 union author void t...