SORU
29 Temmuz 2013, PAZARTESİ


Yapıların garip davranışlar içinde C [bölüm 1]

Düşünün:

struct box
{
    int array[3];
};

int main()
{
    box a = {1};
}

Yukarıdaki eserler aşağıdaki C neden çalışmıyor o zaman?

struct box
{
    int simple_int;
};

int main()
{
    box b = 2;
}

Sebebi nedir?

CEVAP
29 Temmuz 2013, PAZARTESİ


Düzgün, eski her toplama için parantez bir set var box a = { { 1 } } çok kullanmak istiyorsunuz. Diş teli dış set yapısı için iç set dizisi için. Ancak, dil iç parantez atlamasını sağlar.

İkincisi, atlamak için iç parantez yok. Dış parantez atlamak için izin verilmez; diş teli en az bir set toplamak için başlatıcılar listesini ayırt etmek gerekir. Bir anlamda, diş teli “Burada şeylerin bir listesini toplama içine koymak için.” der Yazarken box b = 2 derleyici 2 koymak istiyorum bilmeziçindetoplam. Bunun yerine, 2 b nesne (bir kısmını yerine) başlatmak için çalıştığınız gibi görünüyor. Derleyici bir kurucu veya box 2 bir değiştiren bir dönüşüm bulmaya çalışıyor. Bu başarısız olduğunda, bir hata alıyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • KarnasCamillo

    KarnasCamill

    24 EKİM 2007
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012