Errore del compilatore C2099
l'inizializzatore non è una costante
Questo errore viene generato unicamente dal compilatore C e si verifica solo per variabili non automatiche. Il compilatore inizializza le variabili non automatiche all'avvio del programma e i valori di inizializzazione devono essere costanti.
Esempi
L'esempio seguente genera l'errore C2099.
// C2099.c
int j;
int *p;
j = *p; // C2099 *p is not a constant
L'errore C2099 può verificarsi anche perché il compilatore non riesce a eseguire la riduzione delle costanti su un'espressione in /fp:strict . Le impostazioni di ambiente relative alla precisione della virgola mobile, infatti, possono variare dalla fase di compilazione a quella di compilazione. Per altre informazioni, vedere _controlfp_s .
Se la riduzione di costanti non riesce, il compilatore richiama l'inizializzazione dinamica, non consentita in C.
Per correggere questo errore, compilare il modulo come file cpp o semplificare l'espressione.
Per altre informazioni, vedere /fp (Specifica il comportamento della virgola mobile).
L'esempio seguente genera l'errore C2099.
// C2099_2.c
// compile with: /fp:strict /c
float X = 2.0 - 1.0; // C2099
float X2 = 1.0; // OK