Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O inicializador não é uma constante
Observações
Este erro é emitido apenas pelo compilador C e ocorre apenas para variáveis não automáticas. O compilador inicializa variáveis não automáticas no início do programa e os valores com os quais elas são inicializadas devem ser constantes.
Examples
O exemplo a seguir gera C2099.
// C2099.c
int j;
int *p;
j = *p; // C2099 *p is not a constant
C2099 também pode ocorrer porque o compilador não é capaz de executar dobramento constante em uma expressão em /fp:strict porque as configurações do ambiente de precisão de ponto flutuante (consulte _controlfp_s para obter mais informações) podem diferir de tempo de compilação para execução.
Quando o dobramento constante falha, o compilador invoca a inicialização dinâmica, o que não é permitido em C.
Para resolver esse erro, compile o módulo como um arquivo .cpp ou simplifique a expressão.
Para obter mais informações, consulte /fp (Especificar comportamento de ponto flutuante).
O exemplo a seguir gera C2099.
// C2099_2.c
// compile with: /fp:strict /c
float X = 2.0 - 1.0; // C2099
float X2 = 1.0; // OK