Tipi di dati Objective-C
Nel linguaggio di programmazione Objective-C, i tipi di dati si riferiscono a un sistema esteso utilizzato per dichiarare variabili o funzioni di diversi tipi. Il tipo di variabile determina quanto spazio occupa nella memoria e come viene interpretata la sequenza di bit memorizzata.
I tipi in Objective-C possono essere classificati come segue:
Sr.No. | Tipi e descrizione |
---|---|
1 | Basic Types − Sono tipi aritmetici e sono costituiti dai due tipi: (a) tipi interi e (b) tipi a virgola mobile. |
2 | Enumerated types − Sono di nuovo tipi aritmetici e vengono utilizzati per definire variabili a cui possono essere assegnati solo determinati valori interi discreti in tutto il programma. |
3 | The type void − L'identificatore di tipo void indica che non è disponibile alcun valore. |
4 | Derived types − Includono (a) tipi di puntatore, (b) tipi di array, (c) tipi di struttura, (d) tipi di unione e (e) tipi di funzione. |
I tipi di matrice e i tipi di struttura vengono indicati collettivamente come tipi di aggregazione. Il tipo di una funzione specifica il tipo di valore restituito dalla funzione. Vedremo i tipi di base nella sezione seguente, mentre altri tipi saranno trattati nei prossimi capitoli.
Tipi interi
La tabella seguente fornisce dettagli sui tipi interi standard con le dimensioni di archiviazione e gli intervalli di valori:
genere | Dimensioni di archiviazione | Intervallo di valori |
---|---|---|
char | 1 byte | Da -128 a 127 o da 0 a 255 |
carattere non firmato | 1 byte | Da 0 a 255 |
firmato char | 1 byte | Da -128 a 127 |
int | 2 o 4 byte | Da -32.768 a 32.767 o da -2.147.483.648 a 2.147.483.647 |
unsigned int | 2 o 4 byte | Da 0 a 65.535 o da 0 a 4.294.967.295 |
corto | 2 byte | Da -32.768 a 32.767 |
corto non firmato | 2 byte | Da 0 a 65.535 |
lungo | 4 byte | -2.147.483.648 a 2.147.483.647 |
non firmato a lungo | 4 byte | Da 0 a 4.294.967.295 |
Per ottenere la dimensione esatta di un tipo o di una variabile su una particolare piattaforma, puoi usare il sizeofoperatore. L'espressione sizeof (tipo) restituisce la dimensione di archiviazione dell'oggetto o del tipo in byte. Di seguito è riportato un esempio per ottenere la dimensione del tipo int su qualsiasi macchina:
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for int : %d \n", sizeof(int));
return 0;
}
Quando compili ed esegui il programma sopra, produce il seguente risultato su Linux:
2013-09-07 22:21:39.155 demo[1340] Storage size for int : 4
Tipi in virgola mobile
La tabella seguente fornisce dettagli sui tipi di virgola mobile standard con dimensioni di archiviazione e intervalli di valori e la loro precisione -
genere | Dimensioni di archiviazione | Intervallo di valori | Precisione |
---|---|---|---|
galleggiante | 4 byte | Da 1.2E-38 a 3.4E + 38 | 6 cifre decimali |
Doppio | 8 byte | Da 2.3E-308 a 1.7E + 308 | 15 cifre decimali |
doppio lungo | 10 byte | Da 3.4E-4932 a 1.1E + 4932 | 19 cifre decimali |
Il file di intestazione float.h definisce le macro che consentono di utilizzare questi valori e altri dettagli sulla rappresentazione binaria dei numeri reali nei programmi. L'esempio seguente stamperà lo spazio di archiviazione occupato da un tipo float e dai suoi valori di intervallo -
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for float : %d \n", sizeof(float));
return 0;
}
Quando compili ed esegui il programma sopra, produce il seguente risultato su Linux:
2013-09-07 22:22:21.729 demo[3927] Storage size for float : 4
Il tipo vuoto
Il tipo void specifica che non è disponibile alcun valore. Viene utilizzato in tre tipi di situazioni:
Sr.No. | Tipi e descrizione |
---|---|
1 | Function returns as void Ci sono varie funzioni in Objective-C che non restituiscono valore o puoi dire che restituiscono void. Una funzione senza valore restituito ha il tipo restituito void. Per esempio,void exit (int status); |
2 | Function arguments as void Ci sono varie funzioni in Objective-C che non accettano alcun parametro. Una funzione senza parametro può accettare come un vuoto. Per esempio,int rand(void); |
Il tipo di vuoto potrebbe non essere compreso per te a questo punto, quindi procediamo e tratteremo questi concetti nei prossimi capitoli.