SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • makemebad35

    makemebad35

    17 NİSAN 2006
  • RickardRick

    RickardRick

    9 Mart 2007
  • WPBeginner - WordPress Tutorials

    WPBeginner -

    17 Temmuz 2009