Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

GCC: 'case label does not reduce to an integer constant'

Konu, 'C / C++' kısmında ee++ tarafından paylaşıldı.

  1. ee++

    ee++ Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    1,122
    Beğenilen Mesajlar:
    0
    Şehir:
    Ankara
    Selamlar,

    Programimi derlerken ilginc bir hata mesajı ile karşılaştım. Küçük bir kod örneği vereyim:

    Kod:
    const int SABITIM = 10;
    
    void sayiAl(int tamSayi)
    {
        switch(tamSayi)
       {
           case SABITIM:
           //...
       }
        //....
    }
    Buna benzer bir kodu derledigimde konu basliginda yazdigim hatayi veriyor GCC, yani:
    "case label does not reduce to an integer constant"

    Bunu arastirdigimda bir cok kisinin ayni sorunla karsilastigini gordum. Ama acikcasi neden boyle bir hata aldigimi anlayamadim.

    Hatayi yasayan bir baskasinin yazisi ornegin:
    http://lists.linux.org.au/archives/linuxcprogramming/2002-March/msg00031.html


    #define ile isi halletmek oneriliyor, ama neden? Fikri olan?

    Tesekkurler.
     
  2. acehreli

    acehreli Ali Çehreli

    Kayıt:
    19 Ekim 2002
    Mesajlar:
    4,973
    Beğenilen Mesajlar:
    2
    Verdiğin örnek gcc ile C++ programlarını derlerken çalışıyor. Sorun C olarak derlerken yaşanıyor. Sanırım onun nedeni de C'de sabitler için makro kullanmamızın gerekmesi.

    Ali
     
  3. ee++

    ee++ Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    1,122
    Beğenilen Mesajlar:
    0
    Şehir:
    Ankara
    Halen hatanın nedenini anlamış değilim tam olarak ve gördüğüm kadarı ile GNU'ya bir 'Bug' olarak bildirilmiş bu, tabi sadece bildirilmekle kalmış olabilir..