PDA

Tam Sürümünü Görmek İçin : GCC: 'case label does not reduce to an integer constant'


ee++
29/10/2002, 17:23
Selamlar,

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

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.


acehreli
29/10/2002, 23:49
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

ee++
30/10/2002, 00:43
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..