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

  • habpsu

    habpsu

    25 Temmuz 2007
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009
  • SalGames2016

    SalGames2016

    17 Kasım 2012