Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 11-05-2007, 22.12.24   #1
UG0_BOSS
Young Promise
 
Registrato: 04-02-2006
Messaggi: 2.114
UG0_BOSS promette bene
[C/C++] Relazione tra processore e dimensione delle variabili

Una cosa che mi sono sempre chiesto... spesso leggo che la dimensione delle variabili (int, short, long, double..) può variare a seconda del processore dove vado a compilare il programma.

Qualcuno sa da cosa dipende la dimensione delle variabili? Subito pensavo che per esempio su un processore a 32 bit la dimensione dell'intero fosse 32 bit ma poi ripensandoci mi è sembrato assurdo
UG0_BOSS non è collegato   Rispondi citando
Vecchio 12-05-2007, 01.31.47   #2
Dr_House
Senior Member
 
L'avatar di Dr_House
 
Registrato: 03-09-2005
Loc.: Fondi
Messaggi: 312
Dr_House promette bene
Il legame sta invece proprio nei registri interni della CPU che vengono utilizzati per memorizzare porzioni dei dati acceduti dalle aree di memoria per elaborarli

Le variabili sono memorizzate in memoria centrale (in RAM) secondo la dimensione del tipo (Int, Long etc..) occuperanno dei relativi Byte di memoria.


Ogni qual volta il processore deve compiere un operazione a 32 bit, prende 32 biti di quella variabile e opera su di quelli, perché appunto ha registri interni a 32 Bit.

Se ne avesse 64, prenderebbe 64 bit della variabile per elaborare.

Ovviamente poi il tutto dipende dalla velocità del Clock e quindi dal fetch della CPU che se oltre ad aver registri più capienti ha anche una velocità migliore di elaborazione dei dati, ha prestazioni superiori

Questo solo sommariamente ovvio
___________________________________

Blog -> [LINK]
Dr_House non è collegato   Rispondi citando
Vecchio 26-05-2007, 18.52.16   #3
Flavio58
Junior Member
 
L'avatar di Flavio58
 
Registrato: 12-04-2007
Messaggi: 96
Flavio58 promette bene
Una volta ... 1986 o giù di li ... la piu' grossa diversità era sull'int del C che sotto ambiente DOS era 16 bit mentre su certi sistemi Unix era 32 bits.
Ora questo non esiste piu' in quanto il 16 bits è demandato allo short mentre l'int è in gener 32 bits.
Il tipo non è dipendente dal processore (32 o 64 bits) ... al limite questo è solo funzione di come il sistema elettronico gestiusce l'indirizzamento e il trasferiomento dei dati sull data bus.
Le unaiche valutazioni da fare sono relative alle dimensioni del tipo e al limite di dove questo è allocato (la classe di memoria).
Quest'ultima influisce sulle dimansioni massime che possono occupare le variabili.
Per farti un esempio le variabili locali vengono allocate nello stack per cui se in fase di link tu stabilisci che lo stack è 64K e mi fai :

void function(void)
{
int var[60000];
}

Ti cuccherai un : stack overflow .....
Ma questo è un altro discorso ....

PS: Guarda che ordine nella scrittura del codice ....

main(k){float i,j,r,x,y=-16;while(puts(""),y++<15)for(x
=0;x++<84;putchar(" .:-;!/>)|&IH%*#"[k&15]))for(i=k=r=0;
j=r*r-i*i-2+x/25,i=2*r*i+y/10,j*j+i*i<11&&k++<111;r=j);}

E siii...se tutti i programmi fossero cosi tutto sarebbe piu'0 chiaro e leggibile ....
___________________________________

Flavio Bernardotti
Portale programmazione avanzate e sicurezza biometrica
http://www.bernardotti.it
Flavio58 non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Genuine intel (R) CPU T2060 @ 1.60GHz? smithcome Hardware e Overclock 68 08-03-2007 18.33.02
INTEGRITA' DIMENSIONE FILE juggler Software applicativo 2 16-12-2006 18.49.49
iMac processore INTEL Flying Luka Archivio News Web 34 13-01-2006 18.39.28
Aiuto montaggio processore! Dav82 Hardware e Overclock 6 15-03-2005 00.06.40
Processore Sostituito a 75 euro ?!?!? gionny Windows 7/Vista/XP/ 2003 24 19-02-2004 15.55.29

Orario GMT +2. Ora sono le: 05.52.32.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.