Aracılığıyla paylaş


C numaralandırma bildirimleri

Bir numaralandırma adlandırılmış tamsayı sabitler kümesini içerir.Bir numaralandýrma türü bildirimi (isteğe bağlı) numaralandırma etiketinin ad verir ve adlandırılmış tamsayı tanıtıcıları kümesini tanımlar ("numaralandırma,"numaralayıcı sabitler,"set" olarak adlandırılan "numaralandırıcıları" veya "Üyeler").Bir numaralandýrma türü değişkeniyle numaralandırma belirlenen bu tür tarafından tanımlanan değerlerden biri depolar.

Değişkenler enum türü ifadeler Indexing ve tüm aritmetik ve ilişkisel işleçlerin işlenenleri olarak kullanılabilir.Numaralandırma sağlamak için alternatif #define değerler sizin için oluşturulur ve normal ölçüm kurala uyacak avantajları ile Önişlemci yönergesi.

ANSI c, her zaman bir numaralayıcı sabitinin değeri tanımlayan ifadeler sahip int yazın; Böylece, bir numaralandırma değişkeni ile ilişkilendirilmiş depolama için tek gereken depolama olur int değeri.Bir numaralandırma sabiti veya numaralanmış tür değeri kullanılabilir herhangi bir yerde c dilinin bir tamsayı ifade verir.

Sözdizimi

  • Enum belirleyici:
    enum identifier opt**{** enumerator-list }

    Enum tanımlayıcısı

İsteğe bağlı tanımlayıcısı tarafından tanımlanan numaralandırma türü adları numaralayıcı listesi.Bu tanımlayıcı genellikle liste tarafından belirtilen numaralandırma "etiket" olarak adlandırılır.Formun türü belirticisi

enum identifier { enumerator-list }

bildirir tanımlayıcısı tarafından belirtilen numaralandırma etiketinin olmasını numaralayıcı listesi nonterminal.Numaralayıcı listesi "numaralayıcı içeriği" tanımlar Numaralayıcı listesi aşağıda ayrıntılı olarak açıklanmıştır.

Etiket bildirimi etiketi kullanın, ancak ihmal görünür, sonraki bildirimleri ise numaralayıcı listesi daha önce bildirilen enum türü belirtin.Etiket tanımlı numaralandırma türü için başvurması gerekir ve bu numaralandırma türü geçerli kapsam içinde olması gerekir.Numaralandýrma türü bir yerde tanımlamış numaralayıcı listesi bu bildirim görüntülenmez.Bildirimlerin türleri türetilmiş numaralandırma ve typedef numaralandırma türü tanımlanmadan önce bildirimleri numaralandırma türleri için numaralandırma etiketi kullanabilirsiniz.

Sözdizimi

  • Numaralandırıcı listeden:
    Numaralandırıcı

    Numaralandırıcı listeden**,**enumerator

  • enumerator:
    Numaralandırma sabiti

    Numaralandırma sabiti = sabit ifade

  • Numaralandırma sabiti:
    tanımlayıcı

Her Numaralandırma sabiti , bir Numaralandırma listesi numaralandırma kümesinin bir değer olarak adlandırır.Varsayılan olarak, ilk Numaralandırma sabiti 0 değeri ile ilişkilidir.Sonraki Numaralandırma sabiti listedeki değeri ile ilişkili olan ( sabit ifade + 1), açıkça başka bir değerle ilişkilendirmenizi sürece.Adı bir Numaralandırma sabiti değerine eşittir.

Kullanabileceğiniz Numaralandırma sabiti sabit deyim = varsayılan değerler dizisini geçersiz kılmak için.Bu nedenle, Numaralandırma sabiti sabit deyim = yer numaralayıcı listesi, Numaralandırma sabiti tarafından verilen değerle ilişkilendirilmiş olan sabit ifade.Sabit ifade olmalıdır int yazın ve negatif olabilir.

Bir numaralandýrma kümesinin üyeleri için aşağıdaki kurallar geçerlidir:

  • Bir numaralandýrma kümesi çoğaltılmış sabit değerler içerebilir.Örneğin, belki adlı değeri 0 ile iki farklı tanımlayıcılar ilişkilendirmek null ve zero, aynı kümedeki.

  • Tanımlayıcılar numaralandýrma listesindeki diğer tanımlayıcılar sıradan değişken adları ve tanımlayıcıları diğer numaralandırma listeleri dahil olmak üzere, aynı görünürlüğü ile aynı kapsamda görevlerinden olmalıdır.

  • Numaralandırma etiketleri normal ölçüm kurala uyacak.Bunlar diğer numaralandırma, yapısı ve aynı görünürlük sendika etiketleriyle ayrı olmalıdır.

Örnekler

Bu örnekte, numaralandırma bildirimleri görülmektedir:

enum DAY            /* Defines an enumeration type    */
{
    saturday,       /* Names day and declares a       */
    sunday = 0,     /* variable named workday with    */ 
    monday,         /* that type                      */
    tuesday,
    wednesday,      /* wednesday is associated with 3 */
    thursday,
    friday
} workday;

0 Değeri ile ilişkili saturday varsayılan olarak.Tanımlayıcı sunday açıkça 0 olarak ayarlanır.Kalan tanımlayıcıları 1 ile 5 arasındaki değerler varsayılan olarak verilir.

Bu örnekte, bir değer kümesinden DAY değişkenine atanan today.

enum DAY today = wednesday;

Not numaralandırma sabiti adı değeri atamak için kullanılır.Bu yana DAY numaralandırma türü önceden bildirilmiş, numaralandırma etiketinin DAY gereklidir.

Bir numaralandırılmış veri türünde bir değişken bir tamsayı değeri açıkça atamak için bir tür belirtimi kullanın:

workday = ( enum DAY ) ( day_value - 1 );

Bu cast c önerilir ancak gerekli değildir.

enum BOOLEAN  /* Declares an enumeration data type called BOOLEAN */
{
    false,     /* false = 0, true = 1 */
    true 
}; 

enum BOOLEAN end_flag, match_flag; /* Two variables of type BOOLEAN */

Bu bildirim ayrıca olarak belirtilebilir.

enum BOOLEAN { false, true } end_flag, match_flag;\

veya as

enum BOOLEAN { false, true } end_flag;
enum BOOLEAN match_flag;

Bu değişkenler kullanan örnek şuna benzeyebilir:

if ( match_flag == false )
    {
     .
     .   /* statement */ 
     .
    }
    end_flag = true;

Adsız bir numaralayıcı veri türleri de bildirilebilir.Veri türünün adı girilmediği halde değişkenleri bildirilebilir.Değişken response tanımlı türünde bir değişken olan:

enum { yes, no } response;

Ayrıca bkz.

Başvuru

C++ numaralandırma bildirimleri