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

  • jcortes187

    jcortes187

    24 Mart 2006
  • Justin Case

    Justin Case

    3 EKİM 2011
  • MikeyMacintosh

    MikeyM

    28 Aralık 2009