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.