Sdílet prostřednictvím


Chyba kompilátoru C2099

inicializátor není konstanta.

Poznámky

Tato chyba je vydána pouze kompilátorem jazyka C a dochází pouze pro neautomatické proměnné. Kompilátor inicializuje neautomatické proměnné na začátku programu a hodnoty, se kterými jsou inicializovány, musí být konstantní.

Příklady

Následující příklad vygeneruje C2099.

// C2099.c
int j;
int *p;
j = *p;   // C2099 *p is not a constant

K C2099 může také dojít, protože kompilátor nemůže provádět konstantní posouvání výrazu ve výrazu pod /fp:strict, protože nastavení prostředí přesnosti s plovoucí desetinnou čárkou (viz _controlfp_s další informace) se může lišit od kompilace po dobu běhu.

Když se skládání konstant nezdaří, kompilátor vyvolá dynamickou inicializaci, která není povolena v jazyce C.

Pokud chcete tuto chybu vyřešit, zkompilujte modul jako soubor .cpp nebo výraz zjednodušte.

Další informace naleznete v tématu /fp (určení chování s plovoucí desetinou čárkou).

Následující příklad vygeneruje C2099.

// C2099_2.c
// compile with: /fp:strict /c
float X = 2.0 - 1.0;   // C2099
float X2 = 1.0;   // OK