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

  • B4ROK

    B4ROK

    1 EKİM 2008
  • Learn Math Tutorials

    Learn Math T

    20 Kasım 2011
  • TechRax

    TechRax

    21 EYLÜL 2009