Salve gente!
HO un clamoroso dubbuo sulle costanti simboliche, che, per chei non lo sa, sono quelle dichiarate con:
const tipo = espressione;
Se ho bisogno di dichiarare una costante con grandezza definita dall'utente, posso far cosi:
Bene, questo pezzo di codice fa molto discutere:codice:int var; printf("Inserisci\n"); scanf("%d", var); const int COSTANTE = var; // OCIO A QUESTA!
io e il mio compilatore linux pensiamo che sia logico e corretto
Altra gente pensa che sia profondamente sbagliato.
Se qualcuno di voi sa dirmi si e' possibile o no in ANSI C/C++, mi fa un favore
ma nn mi basta se mi dite che va o no. Se conoscete UN TESTO, meglio se su internet e meglio se e' ANSI che dice CHE SI PUO' FARE, mi fa un immenso favore.
Mi vanno benissimo anche semplici osservazioni tipo:
- a me vanno; uso il compilatore tiziocaio di pippopluto, conforme allo standard ANSI-
o anche:
- il mio manuale (pippo e il c++, di tiziocaio, n edizione pluto editore) dice ESPLICITAMENTE che si puo/non si puo' fare. -
In altre parole vorrei sapere se lo standard lo consente.
Io pensavo questo: dato che la costante VIENE INIZIALIZZATA (e non MODIFICATA) ad un valore, che pero' e' definito dalla variabile, non ce' nessun problema. In effetti, abbiamo una semplice creazione di costante, senza nessun problema, se non per il fatto che viene inizializzata da un valore definito dall'utente.
La costante mantiene cmq il suo valore, e la sua funzion.
Altra gente, che nn nomino, ritiene che questa cosa e' assurda e profondamente sbagliata, in quanto la costante perde la sua funzione, poiche' ogni volta assume il valore della variabile.
Per me, questo ragionamento e' sbagliato, in quanto la costante viene inizializzata ad un valore e resta tale, infatti se proviamo a modificarla con:
Otteniamo errore di compilazione.codice:COSTANTE = 5;
Voi che ne dite?
Grazie
Sayounara