Condividi tramite


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