Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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