Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
требуется константное выражение
Замечания
Контекст требует константное выражение, то есть выражение, значение которого известно во время компиляции.
Компилятору необходимо знать размер типа во время компиляции, чтобы выделить пространство для экземпляра этого типа.
Примеры
В следующем примере создается C2057 и показано, как исправить его:
// 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 имеет более строгие правила относительно константных выражений. В следующем примере создается C2057 и показано, как исправить его:
// 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
}