bu kod hata veriyor?

Başlatan suleymozer, 21 Ağustos 2011, 00:23:11

suleymozer

arkadaşlar, keypad kullanımıyla ilgili bir pic c eğitim kitabından aynen geçiriyorum kodu, fakat derle dediğimde "aritmethic owerflow in constant expression <warning>" uyarısını veriyor, hata nerde?

http://b1108.hizliresim.com/11/8/21/391.jpg
[a href=http://goo.gl/mc9cY][img src=http://b1108.hizliresim.com/11/8/21/391.jpg][/a]

suleymozer

kodda unsigned char kısmını int yapınca hata vermeden derledi.

fahri-

#2
çünkü char ın signed veya unsigned ı olmaz. sadece char kullanırsan da derlenir.

denedim şimdi. ccs de "signed char" da "unsigned char" da hatasız derliyor. Şimdiye kadar "char" ı hiç "signed" kullanmadım. "int" i tercih ettim.   "signed char" olmayacağını düşünmüştüm. 

Klein

Alıntı yapılan: fahri- - 21 Ağustos 2011, 12:13:27
çünkü char ın signed veya unsigned ı olmaz. sadece char kullanırsan da derlenir.

char değişken signed ve unsigned our.
Normale  işaret belirtilmemişse "signed char" olur. Ama bazı derleyiciler bunun için opsiyon sunar.  Varsayılan değerin signed mi? unsigned mi? olacağına bu opsiyonla karar verilir.

z

Keilde char degisken tanimlayip bu degiskeni kullanarak isaretli sayi islemi yapmak istenince hata veriyor diye hatirliyorum. Bu nedenle bu durumlar icin signed char tanimliyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

Bazı derleyicilerin varsayılan "char" tanımı "unsigned".
IAR'da bunu derleyici opsiyonlarından seçebiliyorsunuz. Büyük ihtimalle Keil'de de  böyle bir opsiyon vardır.