Kompilatorfel C2057

förväntat konstant uttryck

Anmärkningar

Kontexten kräver ett konstant uttryck, ett uttryck vars värde är känt vid kompileringstillfället.

Kompilatorn måste känna till storleken på en typ vid kompileringstiden för att allokera utrymme för en instans av den typen.

Exempel

Följande exempel genererar C2057 och visar hur du åtgärdar det:

// C2057.cpp
int i;
int b[i];   // C2057 - value of i is unknown at compile time
int main() {
   const int i = 8;
   int b[i]; // OK - value of i is fixed and known to compiler
}

C har mer restriktiva regler för konstanta uttryck. Följande exempel genererar C2057 och visar hur du åtgärdar det:

// C2057b.c
#define ArraySize1 10
int main() {
   const int ArraySize2 = 10;
   int h[ArraySize2];   // C2057 - C does not allow variables here
   int h[ArraySize1];   // OK - uses preprocessor constant
}