SORU
20 ŞUBAT 2013, ÇARŞAMBA


Neden boyutu(imzasız) çift 4 eşittir?

Meslektaşım eğer imzasız çift olup olmadığını sordu, ve değil, ama yine de kontrol ettim, ve bu Microsoft Visual C 2010 derler: yoktur dedim

unsigned double a;
double b;
printf("size_a=%d size_b=%d", (int) sizeof(a), (int) sizeof(b));

size_a=4 size_b=8 çıktılar. Bu, ** 5 double sekiz bayt için dört bayt.

CEVAP
20 ŞUBAT 2013, ÇARŞAMBA


unsigned double geçersiz. Bu da MSVC doğrudur. Uyarıları ile MSCV 2010 yılında yukarıdaki kod derleniyor etkinleştirildiğinde alıyorum:

warning C4076: 'unsigned' : can not be used with type 'double'

Derleyici aslındayok sayarunsigned, a bunu yaptıktan sonra double aslında unsigned int.

Eğer aşağıdakileri deneyin:

unsigned double a = 1.0;

Aslında iki uyarı:

warning C4076: 'unsigned' : can not be used with type 'double'
warning C4244: 'initializing' : conversion from 'double' to 'unsigned int', possible loss of data

İlginçtir, VS2010 için MSDN C4076 uyarı yok. VS2005 ve VS2008 için var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How Things Are Made

    How Things A

    17 HAZİRAN 2008
  • MisterBrightside

    MisterBright

    24 Mart 2006
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013