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

  • DominicFear

    DominicFear

    30 Kasım 2006
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013
  • TheDamnWreckless

    TheDamnWreck

    12 Temmuz 2010