English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,您将通过示例学习C语言编程中的enum(枚举)。
在C语言编程中,枚举类型(也称为enum)是由整数常量组成的数据类型。要定义枚举,将使用enum关键字。
enum flag {const1, const2, ..., constN};
默认情况下const1为0,const2为1,依此类推。您可以在声明期间更改枚举元素的默认值(如有必要)。
// 更改枚举常量的默认值 enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3, };
定义enum类型时,将创建变量的蓝图。下面介绍如何创建枚举类型的变量。
enum boolean {false, true}; enum boolean check; // 声明一个枚举变量
在此,将创建enum boolean类型的变量check。
你也可以这样声明枚举变量。
enum boolean {false, true} check;
Qui, il valore di false è uguale a 0, il valore di true è uguale a 1.
#include <stdio.h> enum week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}; int main() { // Creazione della variabile today di tipo enum week enum week today; today = Wednesday; printf("Giorno %d", today+1); return 0; }
Risultato di output
Giorno 4
Una variabile enum può assumere solo un valore. Questo è un esempio di esempio,
#include <stdio.h> enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3 }; card; int main() { card = club; printf("Dimensione variabile enum = %d bytes", sizeof(card)); return 0; }
Risultato di output
Dimensione variabile enum = 4 bytes
Qui, otteniamo 4 perché la dimensione di int è di 4 byte.
Facciamo un esempio
enum designFlags { ITALICS = 1, BOLD = 2, UNDERLINE = 4 }; button;
Supponiamo di essere in fase di progettazione di un pulsante per un'applicazione Windows. Puoi impostare i flag ITALICS, BOLD e UNDERLINE per gestire il testo.
Nei codici di pseudo sopra, tutti i costanti di integrazione sono potenze di 2 per un motivo.
// in binario ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
Poiché il costante di integrazione è una potenza di 2, è possibile combinare due o più etichette in una volta senza utilizzareOR bitwise |operatore di sovrapposizione. Questo ti permette di selezionare due o più etichette contemporaneamente. Ad esempio,
#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; }
Risultato di output
5
Quando l'output è 5, sai sempre che sono stati utilizzati grassetto e sottolineato.
Inoltre, puoi aggiungere etichette secondo necessità.
if (myDesign & ITALICS) { //斜體 }
在這裡,我們在設計中添加了斜體。注意,if 語句內部僅編寫斜體代碼。
在 C 語言編程中,您無需使用枚舉就可以完成几乎所有任務。但是,在某些情況下,它們可能非常方便。