In che modo un compilatore, C o C++ (ad esempio gcc) onora la dichiarazione const
?Come viene implementato "const"?
Ad esempio, nel seguente codice, come fa il compilatore registra che la variabile ci
è const
e non può essere modificato?
int
get_foo() {
return 42;
}
void
test()
{
int i = get_foo();
i += 5;
const int ci = get_foo();
// ci += 7; // compile error: assignment of read-only variable ?ci?
}
Allo stesso modo tiene traccia di tutte le informazioni in fase di compilazione su var iables? –
È fatto in fase di compilazione tramite il sistema di tipi. –
Il tuo commento dovrebbe leggere "assegnazione alla variabile di sola lettura". A proposito, come pensi che il compilatore sappia che è un numero intero? – hplbsh