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.