Learning GNU C: allocazione dinamica della memoria | OTHER chapters | ||||
Dimenticare di liberare la memoria, allocata con I Place Holder. Questi due capitoli sono rimasti incompiuti Avrete notato come le variabili, all'interno delle funzioni, perdano il loro valore, ogni volta che la funzione termina. Questo accade per motivi di efficienza. Il sistema operativo non sa se voi avrete ancora bisogno di quei dati e così rilascia la memoria allocata al vostro programma, restituendola al sistema operativo. Di default, le variabili, in C, usano la classe di memorizzazione Le variabili
Questo programma elenca le potenze dei numeri da zero a dieci. Mentre i numeri da zero a nove vengono stampati dal loop, la potenza di dieci è stampata subito dopo, giusto per dimostrare che la variabile Per vedere la differenza, provate a riscrivere lo stesso programma, senza dichiarare alcuna variabile
Quando dichiarate una variabile Questa classe di memorizzazione viene usata come un suggerimento per il compilatore, poiché indica che una variabile verrà utilizzata molto e che, se possibile, bisognerebbe ottimizzarne l'accesso. Normalmente, le variabili vengono conservate nella memoria RAM e trasferite avanti e indietro, dalla RAM al processore, e viceversa, a seconda del bisogno. La velocità di questi trasferimenti è molto elevata, ma può essere migliorata. Tutti i processori dei computer contengono i registri: vere e proprie celle di memoria, che, se utilizzate per memorizzare dei dati, ci liberano dal prezzo che paghiamo per recuperare i dati dalla normale memoria. Questa memoria è molto piccola, se paragonata alla normale memoria: quindi, può contenere solo poche variabili. GCC usa sempre i registri della CPU, decidendo, volta per volta, quali variabili verranno consultate spesso: questo meccanismo funziona bene, ma non potrà mai essere perfetto, visto che GCC non conosce la missione del vostro programma. Grazie alla parola chiave Credo che abbia qualcosa a che vedere con i puntatori. Credo che dica al compilatore che un determinato puntatore sarà il solo a puntare ad un'area della memoria: grazie a questa informazione, il compilatore può ottimizzare il codice. Penso. La parola chiave
|
|||||
Learning GNU C: allocazione dinamica della memoria | Disclaimer: this link points to content provided by other sites. |