Objective-C-Datentypen

In der Programmiersprache Objective-C beziehen sich Datentypen auf ein umfangreiches System, das zum Deklarieren von Variablen oder Funktionen verschiedener Typen verwendet wird. Der Typ einer Variablen bestimmt, wie viel Speicherplatz sie einnimmt und wie das gespeicherte Bitmuster interpretiert wird.

Die Typen in Objective-C können wie folgt klassifiziert werden:

Sr.Nr. Typen & Beschreibung
1

Basic Types −

Sie sind arithmetische Typen und bestehen aus zwei Typen: (a) Ganzzahltypen und (b) Gleitkommatypen.

2

Enumerated types −

Sie sind wieder arithmetische Typen und werden verwendet, um Variablen zu definieren, denen im gesamten Programm nur bestimmte diskrete ganzzahlige Werte zugewiesen werden können.

3

The type void −

Der Typbezeichner void gibt an, dass kein Wert verfügbar ist.

4

Derived types −

Sie umfassen (a) Zeigertypen, (b) Array-Typen, (c) Strukturtypen, (d) Unionstypen und (e) Funktionstypen.

Die Array- und Strukturtypen werden zusammen als Aggregattypen bezeichnet. Der Typ einer Funktion gibt den Typ des Rückgabewerts der Funktion an. Wir werden im folgenden Abschnitt grundlegende Typen sehen, während andere Typen in den kommenden Kapiteln behandelt werden.

Ganzzahlige Typen

Die folgende Tabelle enthält Details zu Standard-Integer-Typen mit ihren Speichergrößen und Wertebereichen.

Art Speichergröße Wertebereich
verkohlen 1 Byte -128 bis 127 oder 0 bis 255
vorzeichenloser char 1 Byte 0 bis 255
signiertes Zeichen 1 Byte -128 bis 127
int 2 oder 4 Bytes -32.768 bis 32.767 oder -2.147.483.648 bis 2.147.483.647
unsigned int 2 oder 4 Bytes 0 bis 65.535 oder 0 bis 4.294.967.295
kurz 2 Bytes -32.768 bis 32.767
unsigned short 2 Bytes 0 bis 65.535
lange 4 Bytes -2.147.483.648 bis 2.147.483.647
lange nicht signiert 4 Bytes 0 bis 4,294,967,295

Um die genaue Größe eines Typs oder einer Variablen auf einer bestimmten Plattform zu erhalten, können Sie die verwenden sizeofOperator. Der Ausdruck sizeof (Typ) gibt die Speichergröße des Objekts oder Typs in Bytes an. Im Folgenden finden Sie ein Beispiel, um die Größe des int-Typs auf einem beliebigen Computer zu ermitteln.

#import <Foundation/Foundation.h>

int main() {
   NSLog(@"Storage size for int : %d \n", sizeof(int));
   return 0;
}

Wenn Sie das obige Programm kompilieren und ausführen, wird unter Linux das folgende Ergebnis erzielt:

2013-09-07 22:21:39.155 demo[1340] Storage size for int : 4

Gleitkommatypen

Die folgende Tabelle enthält Details zu Standard-Gleitkommatypen mit Speichergrößen und Wertebereichen sowie deren Genauigkeit.

Art Speichergröße Wertebereich Präzision
schweben 4 Byte 1,2E-38 bis 3,4E + 38 6 Dezimalstellen
doppelt 8 Byte 2,3E-308 bis 1,7E + 308 15 Dezimalstellen
langes Doppel 10 Byte 3.4E-4932 bis 1.1E + 4932 19 Dezimalstellen

Die Header-Datei float.h definiert Makros, mit denen Sie diese Werte und andere Details zur binären Darstellung von reellen Zahlen in Ihren Programmen verwenden können. Im folgenden Beispiel wird der von einem Float-Typ belegte Speicherplatz und seine Bereichswerte gedruckt.

#import <Foundation/Foundation.h>

int main() {
   NSLog(@"Storage size for float : %d \n", sizeof(float));
   return 0;
}

Wenn Sie das obige Programm kompilieren und ausführen, wird unter Linux das folgende Ergebnis erzielt:

2013-09-07 22:22:21.729 demo[3927] Storage size for float : 4

Der leere Typ

Der void-Typ gibt an, dass kein Wert verfügbar ist. Es wird in drei Arten von Situationen verwendet -

Sr.Nr. Typen und Beschreibung
1 Function returns as void

In Objective-C gibt es verschiedene Funktionen, die keinen Wert zurückgeben, oder Sie können sagen, dass sie void zurückgeben. Eine Funktion ohne Rückgabewert hat den Rückgabetyp als ungültig. Zum Beispiel,void exit (int status);

2 Function arguments as void

In Objective-C gibt es verschiedene Funktionen, die keine Parameter akzeptieren. Eine Funktion ohne Parameter kann als ungültig akzeptiert werden. Zum Beispiel,int rand(void);

Der Leertyp wird Ihnen zu diesem Zeitpunkt möglicherweise nicht verstanden. Lassen Sie uns fortfahren und wir werden diese Konzepte in den kommenden Kapiteln behandeln.