C (linguaggio): differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Contenuto aggiunto Contenuto cancellato
m (Rollback - Annullate le modifiche di Hitechtoday2 (discussione), riportata alla versione precedente di Verp89)
Riga 24: Riga 24:
== Caratteristiche ==
== Caratteristiche ==


Il C è strettamente correlato con l'[[ASM]], in quanto, oltre ad avere anch'egli una logica illogica, permette di gestire perfettamente, all'interno del sistema operativo dove lo si sta utilizzando, il basso livello, ovvero i registri, la [[CPU]], la [[RAM]], la ventola e pure il cordless che sta a fianco al [[PC]], solo che con il C la gestione è stata "semplificata". Ad esempio, un codice [[APSL]] è tipicamente fatto così:
Il C è noto ai programmatori come ''il figlio rinnegato delll'[[ASM]]'', in quanto, oltre ad avere anch'egli una logica illogica, permette di gestire [[Cazzo di cane|perfettamente]], all'interno del sistema operativo dove lo si sta utilizzando, i dati di basso livello: si ha cioè potere di vita o di morte sui registri, la [[CPU]], la [[RAM]], la ventola e pure il cordless che sta a fianco al [[PC]], nonché tostapane e spazzolini da denti. Solo che con il C la gestione è stata "semplificata". Ad esempio, un codice [[APSL]] è tipicamente fatto così:


<code>
<code>
Riga 53: Riga 53:
Ovviamente ambedue codici sono da non sottovalutare, visto che causeranno [[Ritorno al futuro|una reazione a catena che scomporrebbe la tessitura del continuum tempo-spazio distruggendo l'intero universo]].
Ovviamente ambedue codici sono da non sottovalutare, visto che causeranno [[Ritorno al futuro|una reazione a catena che scomporrebbe la tessitura del continuum tempo-spazio distruggendo l'intero universo]].


Altra cosa non poco importante del C, che l'ha reso estremamente potente, è la possibilità di sfruttare l'allocazione dinamica della memoria, ovvero, il poter allocare della memoria in modo tale da poter immagazzinarci dentro del buffer. Un esempio potrebbe essere il seguente:
Altra cosa non poco importante del C, che l'ha reso estremamente potente, è la possibilità di sfruttare l'allocazione dinamica della memoria, ovvero il poter creare blocchi di dati di [[Millemila|lunghezza a piacere]]. Un esempio potrebbe essere il seguente:


<code>
<code>
Riga 59: Riga 59:
</code>
</code>


Ovviamente il codice è stato scritto per far comprendere come sia possibile allocare memoria senza troppa difficoltà, ma non è mai stato testato, in quanto provocherebbe in un [[petosecondo]] lo spegnimento del [[sole]].
Ovviamente il codice è stato scritto per far comprendere come sia possibile allocare memoria senza troppa difficoltà, ma non è mai stato testato, in quanto provocherebbe in un [[petosecondo]] lo spegnimento del [[sole]]. La fuoriuscita di fumo nero dai blocchi di RAM è stata segnalata da non pochi programmatori, ma è una circostanza da considerarsi assolutamente normale.


A differenza dell'[[ASM]], che obbligava il programmatore a inserire manualmente valori nei registri usando poi add, sub, mul, die, etc, il C offre finalmente degli operatori con i quali è possibile interagire con variabili e valori letterali. I principali, sono quelli usati per le operazioni matematiche, ma sono stati ideati anche altri operatori per semplificare alcune istruzioni. Ecco alcuni esempi:
A differenza dell'[[ASM]], che obbligava il programmatore a inserire manualmente valori nei registri usando monosillabi tipo ''add'', ''sub'', ''mul'', ''die'' e così via, il C offre finalmente degli operatori con i quali è possibile manipolare i dati anche se si possiedono meno di trenta lauree. I principali sono quelli usati per le operazioni matematiche, ma sono stati ideati anche altri operatori per semplificare alcune istruzioni. Ecco alcuni esempi:


<code>
<code>