Delen via


Compilerfout C2057

verwachte constante expressie

Opmerkingen

Voor de context is een constante expressie vereist, een expressie waarvan de waarde tijdens het compileren bekend is.

De compiler moet de grootte van een type tijdens het compileren kennen om ruimte toe te wijzen voor een exemplaar van dat type.

Voorbeelden

In het volgende voorbeeld wordt C2057 gegenereerd en ziet u hoe u dit kunt oplossen:

// 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 heeft meer beperkende regels voor constante expressies. In het volgende voorbeeld wordt C2057 gegenereerd en ziet u hoe u dit kunt oplossen:

// 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
}