Kompilatorfel C2099

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