22 EYLÜL 2009, Salı
uzun uzun C/C
GNU C derleyici bu kodu çalışıyorum ve bu davranışını anlamak mümkün duyuyorum:
#include <stdio.h>;
int main()
{
int num1 = 1000000000;
long num2 = 1000000000;
long long num3;
//num3 = 100000000000;
long long num4 = ~0;
printf("%u %u %u", sizeof(num1), sizeof(num2), sizeof(num3));
printf("%d %ld %lld %llu", num1, num2, num3, num4);
return 0;
}
Çizgi yorumladı ben Yorumsuz, kod derleme değildir ve bir hata veriyor:
hata: sabit uzun yazın için çok büyük tamsayı
Ama kod olarak derlenir ve çalıştırılır, değerleri 10000000000 çok daha büyük üretir.
Neden?
CEVAP
22 EYLÜL 2009, Salı
Harfleri 100000000000 değişmez bir tamsayı sabit olması durumunda ise değer tipi int
için çok büyük. Harf türünü değiştirmek için bir sonek kullanmak gerekir, yani
long long num3 = 100000000000LL;
Soneki LL
literal içine yazın long long
yapar. C" solda türünden bu sonuç için yeterli, bu tür edebi kendisinin bir özelliği vardır, bu bağlamda kullanılmıyor. "akıllı değildir
Bunu Paylaş:
Ne kadar çok uzun dizin adları işlemek...
Dizeleri bir dizi en uzun ortak başlan...
Python uzun satırları kaydır...
Bir dosya en uzun çizgi...
Uzun süren İşlemler için Android Async...