unsigned long d = 0x800000UL ???

Başlatan dumansiz, 30 Mayıs 2012, 21:46:48

dumansiz

Merhaba;
Bir kodda böyle bir ifade gördüm:

unsigned long d = 0x800000UL

UL herhalde unsigned long un kısaltılması.
Ama bu UL neden konuluyor? Zaten başta unsigned long denmiş.
Konulmaması sorun mu teşkil eder?

elektronikhobi

C++ için bir sayıyı sekizli olarak göstermek için 0 önekini kullanır. Yani 0177 sekizlik düzende bir sayıdır.

Onaltılık sayı düzenini göstermek için de 0x ya da 0X ön ekini kullanır. 0x2B3 gibi..

unsigned long 0 ila 4294967295 arasında değer alabilir.

Sizin verdiğiniz örnekte sayı onaltılık sayı sisteminde yazıldığı için kütüphaneyi yazan kişi özellikle sayının işaretsiz olduğunu belirtmek için kullanmış olabilir.


Tagli

#2
Zamanında bu ULL meselesi yüzünden bir sıkıntı yaşamıştım. Sorunu ve çözümü bu başlıkta dile getirmiştim. İncelenmesi faydalı olabilir.

Sanırım bunlara özellikle pre-processor ifadelerinde kullanırken dikkat etmek gerekiyor. Yani makrolarda ve #define ile yapılan tanımlamalarda.
Gökçe Tağlıoğlu