Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
oczekiwane wyrażenie stałe
Kontekst wymaga wyrażenia stałego, wyrażenia, którego wartość jest znana w czasie kompilacji.
Kompilator musi znać rozmiar typu w czasie kompilacji, aby przydzielić miejsce dla wystąpienia tego typu.
Przykłady
Poniższy przykład generuje kod C2057 i pokazuje, jak go naprawić:
// 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
}
Język C ma bardziej restrykcyjne reguły dla wyrażeń stałych. Poniższy przykład generuje kod C2057 i pokazuje, jak go naprawić:
// 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
}