Bu öğreticide, örnekler yardımıyla C programlamada enum (numaralandırma) hakkında bilgi edineceksiniz.
C programlamada, bir numaralandırma türü (enum olarak da adlandırılır), integral sabitlerden oluşan bir veri türüdür. Numaralandırmaları tanımlamak için enum
anahtar kelime kullanılır.
enum bayrağı (const1, const2,…, constN);
Varsayılan olarak, sabit1 0, sabit2 1'dir ve böyle devam eder. Bildirim sırasında enum öğelerinin varsayılan değerlerini değiştirebilirsiniz (gerekirse).
// enum sabitlerinin varsayılan değerlerinin değiştirilmesi enum suit (club = 0, diamonds = 10, hearts = 20, spades = 3,);
Numaralandırılmış Tip Beyanı
Bir enum türü tanımladığınızda, değişkenin planı oluşturulur. Enum türlerinin değişkenlerini nasıl oluşturabileceğiniz aşağıda açıklanmıştır.
enum boolean (yanlış, doğru); enum boole kontrolü; // bir enum değişkeni bildirmek
Burada, türün değişken bir kontrolü enum boolean
oluşturulur.
Bunun gibi enum değişkenlerini de bildirebilirsiniz.
enum boolean (yanlış, doğru) kontrol;
Burada değeri false
0'a eşittir ve değeri true
1'e eşittir.
Örnek: Numaralandırma Türü
#include enum week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday); int main() ( // creating today variable of enum week type enum week today; today = Wednesday; printf("Day %d",today+1); return 0; )
Çıktı
4. gün
Numaralandırmalar neden kullanılır?
Bir enum değişkeni yalnızca bir değer alabilir. İşte bunu göstermek için bir örnek:
#include enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; printf("Size of enum variable = %d bytes", sizeof(card)); return 0; )
Çıktı
Enum değişkeninin boyutu = 4 bayt
Burada int
4 bayt boyutu olduğu için 4 alıyoruz .
Bu, numaralandırmayı bayraklarla çalışmak için iyi bir seçim yapar.
Bayraklar için numaralandırma nasıl kullanılır?
Bir örnek ele alalım,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Windows uygulaması için bir düğme tasarladığınızı varsayalım. ITALICS, BOLD ve UNDERLINE bayraklarını metinle çalışması için ayarlayabilirsiniz.
Yukarıdaki sözde kodda tüm integral sabitlerin 2'nin kuvveti olmasının bir nedeni vardır.
// İkili ITALICS'te = 00000001 BOLD = 00000010 UNDERLINE = 00000100
İntegral sabitleri 2'nin kuvveti olduğundan, iki veya daha fazla bayrağı bitsel OR | Şebeke. Bu, aynı anda iki veya daha fazla bayrak seçmenize izin verir. Örneğin,
#include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; )
Çıktı
5
Çıktı 5 olduğunda, her zaman kalın ve altı çizili olduğunu bilirsiniz.
Ayrıca gereksinimlerinize göre bayraklar ekleyebilirsiniz.
if (myDesign & ITALICS) (// italik için kod)
Burada tasarımımıza italik yazı ekledik. Not, if
ifadenin içine sadece italik için kod yazılmıştır .
Numaralandırma kullanmadan C programlamasında neredeyse her şeyi başarabilirsiniz. Ancak, bazı durumlarda oldukça kullanışlı olabilirler.