Programlama Dillerinde Enum Nedir?

click fraud protection

Numaralandırma kısaltması, bir numaralandırma değişken tip C (ANSI, orijinal K&R değil), C ++ ve C #. Fikir şu ki bir kullanmak yerine int bir değer kümesini temsil etmek için, bunun yerine kısıtlı değer kümesine sahip bir tür kullanılır.

Örneğin, gökkuşağının renklerini kullanırsak,

  1. Kırmızı
  2. Portakal
  3. Sarı
  4. Yeşil
  5. Mavi
  6. çivit
  7. Menekşe

Numaralandırmalar yoksa, bir #tanımlamak (C cinsinden) veya const C ++ / C # 'da bu değerleri belirtin. Örneğin

Saymak için Çok Fazla Ints!

Sorun şu ki, daha birçok şey var int renklerden daha. Menekşe 7 değerine sahipse ve program bir değişkene 15 değeri atarsa, bu açıkça bir hatadır ancak 15 int için geçerli bir değer olduğu için algılanmayabilir.

Kurtarma Görevlisi

Bir numaralandırma, numaralandırıcı olarak adlandırılan bir dizi sabitten oluşan kullanıcı tanımlı bir türdür. Gökkuşağının renkleri şu şekilde eşlenir:

Şimdi dahili olarak, derleyici bunları tutmak için bir int kullanacak ve hiçbir değer verilmiyorsa kırmızı 0, turuncu 1 vb.

Mesele şu ki Gökkuşağı renkleri bir türdür ve buna yalnızca aynı türdeki diğer değişkenler atanabilir. C daha kolaydır (yani daha az kesin olarak yazılır), ancak C ++ ve C #, bir kadro kullanarak zorlamadığınız sürece atamaya izin vermez.

instagram viewer

Bunlara takılı kalmadın derleyici oluşturduğunuz değerlere, burada gösterildiği gibi kendilerine tamsayı sabitinizi atayabilirsiniz.

Aynı değerde maviye ve çivit mavisine sahip olmak yanlış değildir, çünkü numaralandırıcılar kırmızı ve kızıl gibi eşanlamlıları içerebilir.

Dil Farklılıkları

C dilinde, değişken deklarasyondan önce kelime gelmelidir Sıralama de olduğu gibi

Ancak C ++ 'da, Gökkuşağı renkleri enum türü önekine ihtiyaç duymayan ayrı bir türdür.

C # 'da, değerlere,

Numaralandırmaların Amacı Nedir?

Numaraları kullanmak, soyutlama düzeyini artırır ve programcının, değerlerin nasıl depolandıkları ve erişildikleri konusunda endişelenmek yerine, ne anlama geldiğini düşünmelerini sağlar. Bu, hataların oluşumunu azaltır.

İşte bir örnek. Üç ampullü trafik ışıklarımız var. kırmızı, Sarı ve yeşil. İngiltere'de trafik ışıklarının sırası bu dört aşamada değişir.

  1. Kırmızı - Trafik Durduruldu.
  2. Her ikisi de Kırmızı ve Sarı - Trafik Hala durdu, ancak ışıklar yeşile dönecek.
  3. Yeşil - Trafik hareket edebilir.
  4. Sarı - Kırmızıya yakın değişiklik uyarısı.

Trafik Işığı Örneği

Işıklar, bir kontrol baytının alt üç bitine yazılarak kontrol edilir. Bunlar, RYG'nin üç biti temsil ettiği ikili dosyada aşağıda bir bit deseni olarak düzenlenmiştir. R 1 ise, kırmızı ışık yanar vb.

Bu durumda, yukarıdaki dört durumun 4 = değerlerine karşılık geldiğini görmek kolaydır Kırmızı açık, 6 = Kırmızı + Sarı her ikisi de, 1 = Yeşil açık ve 2 = Sarı üzerinde.

Bu işlev ile

Numaralandırmalar yerine bir sınıf kullanma

C ++ ve C # 'da bir sınıf yaratmamız ve aşırı yükleme operatör | izin vermek YA-ing türlerin trafik ışıkları.

Numaralandırma kullanarak ampul kontrol baytına diğer bitlerle ilgili problemleri önleriz. Diğer bazı bitler kendi kendini test etmeyi veya bir "Yeşil Şerit" anahtarını kontrol ediyor olabilir. Bu durumda, bu bitlerin normal kullanımda ayarlanmasına izin veren bir hata tahribat yaratabilir.

Emin olmak için, SetTrafficlights ()fonksiyon böylece hangi değer geçilirse geçirilsin, sadece en alttaki üç bit değiştirilir.

Sonuç

Numaralandırmaların şu avantajları vardır:

  • Enum değişkeninin alabileceği değerleri kısıtlarlar.
  • Sayının alabileceği tüm olası değerleri düşünmeye zorlarlar.
  • Sayıdan ziyade sabittir ve okunabilirliğini artırır kaynak kodu
instagram story viewer