C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C 語言枚舉(enum)

在本教程中,您將借助示例學(xué)習(xí)C語言編程中的enum(枚舉)。

在C語言編程中,枚舉類型(也稱為enum)是由整數(shù)常量組成的數(shù)據(jù)類型。要定義枚舉,將使用enum關(guān)鍵字。

enum flag {const1, const2, ..., constN};

默認(rèn)情況下const1為0,const2為1,依此類推。您可以在聲明期間更改枚舉元素的默認(rèn)值(如有必要)。

//更改枚舉常量的默認(rèn)值
enum suit {
    club = 0,
    diamonds = 10,
    hearts = 20,
    spades = 3,
};

枚舉類型聲明

定義enum類型時,將創(chuàng)建變量的藍圖。下面介紹如何創(chuàng)建枚舉類型的變量。

enum boolean {false, true};
enum boolean check; // 聲明一個枚舉變量

在此,將創(chuàng)建enum boolean類型的變量check。

您也可以像這樣聲明枚舉變量。

enum boolean {false, true} check;

在此,false的值等于0,true的值等于1。

示例:枚舉類型

#include <stdio.h>

enum week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};

int main()
{
    //創(chuàng)建枚舉week類型的today變量
    enum week today;
    today = Wednesday;
    printf("Day %d",today+1);
    return 0;
}

輸出結(jié)果

Day 4

為什么使用枚舉?

枚舉變量只能采用一個值。這是一個示范的實例,

#include <stdio.h>

enum suit {
    club = 0,
    diamonds = 10,
    hearts = 20,
    spades = 3
} card;

int main() 
{
    card = club;
	printf("枚舉變量的大小 = %d bytes", sizeof(card));	
	return 0;
}

輸出結(jié)果

枚舉變量的大小 = 4 bytes

這里,我們得到4,因為int的大小是4個字節(jié)。

如何將枚舉用于標(biāo)志?

讓我們舉個實例

enum designFlags {
	ITALICS = 1,
	BOLD = 2,
	UNDERLINE = 4
} button;

假設(shè)您正在設(shè)計Windows應(yīng)用程序的按鈕。 您可以設(shè)置標(biāo)志ITALICS,BOLD和UNDERLINE來處理文本。

在上面的偽代碼中,所有的積分常數(shù)都是2的冪是有原因的。

//用二進制

ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100

由于積分常數(shù)是2的冪次,因此可以一次性合并兩個或多個標(biāo)志,而不用使用按位OR |運算符進行重疊。這允許您一次選擇兩個或多個標(biāo)志。例如,

#include <stdio.h>

enum designFlags {
	BOLD = 1,
	ITALICS = 2,
	UNDERLINE = 4
};

int main() {
	int myDesign = BOLD | UNDERLINE; 

        //    00000001
        //  | 00000100
        //  ___________
        //    00000101

	printf("%d", myDesign);

	return 0;
}

輸出結(jié)果

5

當(dāng)輸出為5時,您始終知道使用了粗體和下劃線。

另外,您可以根據(jù)需要添加標(biāo)志。

if (myDesign & ITALICS) {
    //斜體
}

在這里,我們在設(shè)計中添加了斜體。注意,if語句內(nèi)部僅編寫斜體代碼。

您無需使用枚舉就可以在C語言編程中完成幾乎所有任務(wù)。但是,它們在某些情況下可能非常方便。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清