xxavy ha scritto:
E quindi diciamo a che serve il "long"?
Storicamente il tipo
int è calibrato sul bus dati della CPU. Se la CPU è a 16 bit, un int sarà di 16 bit, se la CPU è a 32bit l'int sarà a 32bit (non ho informazioni su altri tipi di architetture, ma non escludo che se la CPU è 64bit o superiore l'int segua quella strada).
Il long int e lo short int nascono con lo scopo di assicurare dimensioni precise al dato in esame:
uno short int avrà sempre 16bit, un long int (se non ricordo male lo standard) avrà almeno dimensione pari o superiore a un int.
Ne consegue che un long int avrà dimensioni 32bit sia su CPU a 16bit sia su CPU a 32bit.
E' possibile comunque usare un numero a 64bit se il tuo compilatore supporta il
long long
o
__int64 su piattaforme MS. Se poi disponi dell'header
stdint.h risolvi la discrepanza usando
int64_t
ma perché dovrei farne di un intero un array? Cioè devo prendere il 'numero di telefono' come una stringa?
Così puoi acquisire numeri telefonici di questo tipo:
0123-456789
(Nota il trattino)