Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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