Aracılığıyla paylaş


Derleyici Hatası C2078

çok fazla başlatıcı

Açıklamalar

Başlatıcı sayısı, başlatılacak nesne sayısını aşıyor.

Derleyici, iç küme ayraçları başlatıcı listesinden kaldırıldığında, başlatıcıların nesnelere ve iç nesnelere doğru atamasını sağlayabilir. Tam küme ayracı ayrıca belirsizliği ortadan kaldırır ve doğru atamayla sonuçlanmasını sağlar. Kısmi küme ayracı, başlatıcıların nesnelere atanma belirsizliği nedeniyle C2078'e neden olabilir.

Örnek

Aşağıdaki örnek C2078 oluşturur ve nasıl düzeltileceğini gösterir:

// C2078.cpp
// Compile by using: cl /c /W4 C2078.cpp
struct S {
   struct {
      int x, y;
   } z[2];
};

int main() {
   int d[2] = {1, 2, 3};   // C2078
   int e[2] = {1, 2};      // OK

   char a[] = {"a", "b"};  // C2078
   char *b[] = {"a", "b"}; // OK
   char c[] = {'a', 'b'};  // OK

   S s1{1, 2, 3, 4};       // OK
   S s2{{1, 2}, {3, 4}};   // C2078
   S s3{{1, 2, 3, 4}};     // OK
   S s4{{{1, 2}, {3, 4}}}; // OK
}