Delen via


Compilerfout C2099

initializer is geen constante

Opmerkingen

Deze fout wordt alleen uitgegeven door de C-compiler en treedt alleen op voor niet-automatische variabelen. De compiler initialiseert niet-automatische variabelen aan het begin van het programma en de waarden waarmee ze worden geïnitialiseerd, moeten constant zijn.

Voorbeelden

In het volgende voorbeeld wordt C2099 gegenereerd.

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

C2099 kan optreden omdat de compiler niet in staat is om constante vouwen uit te voeren op een expressie onder /fp:strict, omdat de instellingen voor de drijvendekommaberekeningsomgeving (zie _controlfp_s voor meer informatie) kunnen verschillen tussen compileertijd en runtime.

Wanneer constant vouwen mislukt, roept de compiler dynamische initialisatie aan, die niet is toegestaan in C.

Als u deze fout wilt oplossen, compileert u de module als een .cpp-bestand of vereenvoudigt u de expressie.

Voor meer informatie, zie /fp (Geef Floating-Point gedrag op).

In het volgende voorbeeld wordt C2099 gegenereerd.

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