Megosztás a következőn keresztül:


C2099 fordítási hiba

Az inicializáló nem állandó

Megjegyzések

Ezt a hibát csak a C fordító állítja ki, és csak nem automatikus változók esetén fordul elő. A fordító a program elején inicializálja a nem automatikus változókat, és az inicializált értékeknek állandónak kell lenniük.

Példák

Az alábbi példa C2099-et hoz létre.

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

A C2099 azért is előfordulhat, mert a fordító nem képes állandó összecsukást végezni a /fp:strict kifejezésen, mert a lebegőpontos pontossági környezet beállításai (további információkért lásd _controlfp_s ) eltérhetnek a fordítástól a futási időig.

Ha az állandó összecsukás sikertelen, a fordító dinamikus inicializálást hív meg, amely c nyelven nem engedélyezett.

A hiba megoldásához állítsa össze a modult .cpp fájlként, vagy egyszerűsítse a kifejezést.

További információt a /fp (Floating-Point viselkedésének megadása) című témakörben talál.

Az alábbi példa C2099-et hoz létre.

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