Variabili immodificabili [C++]
Moderatori: MassimoB,
Paolino,
fairyvilje
11 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
Salve a tutti, quando programmavo in java, esisteva l'attributo "final" che si poteva attribuire alle variabili, è possibile fare ciò anche in C++?
-
daniele1996
608 2 8 11 - Sostenitore
- Messaggi: 1439
- Iscritto il: 29 ago 2011, 11:29
2
voti
Dichiarale const ovvero costanti.
- Codice: Seleziona tutto
const int hello_world=10; //Importante dargli un valore durante la definizione!
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?

-
fairyvilje
14,2k 4 9 12 - G.Master EY
- Messaggi: 2954
- Iscritto il: 24 gen 2012, 19:23
0
voti
non esiste una costante inizializzabile con una funzione?
-
daniele1996
608 2 8 11 - Sostenitore
- Messaggi: 1439
- Iscritto il: 29 ago 2011, 11:29
1
voti
si certo, devi solo scrivere:
ma non è detto che vada con tutti i compilatori/architetture
Con Visual Studio ho appena verificato che funziona
- Codice: Seleziona tutto
const int hello_world=miafunzione();
ma non è detto che vada con tutti i compilatori/architetture
Con Visual Studio ho appena verificato che funziona
0
voti
ehm, mi servirebbe in ambito di micro... (AVR) e non lo accetta... in ogni caso sta parola const la ricorderò... ma i dati vengono messi nella ram con questo attributo? o viene fatta una sostituzione (come per i define)?
-
daniele1996
608 2 8 11 - Sostenitore
- Messaggi: 1439
- Iscritto il: 29 ago 2011, 11:29
2
voti
quando inserisci valori numerici in pratica si comporta come una #define
ecco perche' alcuni compilatori non ti permettono di usare funzioni
i compilatori che ti accettano funzioni in realtà devono implementare la const come una variabile RAM forzatamente
usano il termine 'const' solo per verificare che non la usi mai in scrittura
ti consiglio comunque di usare la 'const' al posto della #define in generale
dato che vieni supervisionato dal compilatore dovresti evitare errori grossolani
e anche il fatto che puoi definire il 'tipo' della variabile è spesso un vantaggio in ottica "possibili ambiguità"
ecco perche' alcuni compilatori non ti permettono di usare funzioni
i compilatori che ti accettano funzioni in realtà devono implementare la const come una variabile RAM forzatamente
usano il termine 'const' solo per verificare che non la usi mai in scrittura
ti consiglio comunque di usare la 'const' al posto della #define in generale
dato che vieni supervisionato dal compilatore dovresti evitare errori grossolani
e anche il fatto che puoi definire il 'tipo' della variabile è spesso un vantaggio in ottica "possibili ambiguità"
0
voti
Ottimo... quindi usando la "const" nei micro (visto che non fa inizializzare con una funzione) viene messa in memoria flash... giusto?
-
daniele1996
608 2 8 11 - Sostenitore
- Messaggi: 1439
- Iscritto il: 29 ago 2011, 11:29
2
voti
Si esatto,
il numero viene sostituito alla costante, e viene inserito direttamente nel codice macchina (Assembler immagino) nella parte di memoria programma.
Quindi quella variabile non usa RAM in fase di esecuzione... infatti non è piu' corretto chiamarla 'variabile', in quanto non varia: è una costante
il numero viene sostituito alla costante, e viene inserito direttamente nel codice macchina (Assembler immagino) nella parte di memoria programma.
Quindi quella variabile non usa RAM in fase di esecuzione... infatti non è piu' corretto chiamarla 'variabile', in quanto non varia: è una costante

11 messaggi
• Pagina 1 di 2 • 1, 2
Chi c’è in linea
Visitano il forum: Nessuno e 7 ospiti