Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
initializer är inte en konstant
Anmärkningar
Det här felet utfärdas endast av C-kompilatorn och inträffar endast för icke-automatiska variabler. Kompilatorn initierar icke-automatiska variabler i början av programmet och värdena som de initieras med måste vara konstanta.
Examples
I följande exempel genereras C2099.
// C2099.c
int j;
int *p;
j = *p; // C2099 *p is not a constant
C2099 kan också inträffa eftersom kompilatorn inte kan utföra konstant vikning på ett uttryck under /fp:strict eftersom miljöinställningarna för flyttalsprecision (se _controlfp_s för mer information) kan skilja sig från kompilering till körningstid.
När konstant vikning misslyckas anropar kompilatorn dynamisk initiering, vilket inte är tillåtet i C.
Lös det här felet genom att kompilera modulen som en .cpp fil eller förenkla uttrycket.
Mer information finns i /fp (Specificera flyttalsbeteende).
I följande exempel genereras C2099.
// C2099_2.c
// compile with: /fp:strict /c
float X = 2.0 - 1.0; // C2099
float X2 = 1.0; // OK