Tipos de datos de Objective-C
En el lenguaje de programación Objective-C, los tipos de datos se refieren a un amplio sistema utilizado para declarar variables o funciones de diferentes tipos. El tipo de una variable determina cuánto espacio ocupa en almacenamiento y cómo se interpreta el patrón de bits almacenado.
Los tipos en Objective-C se pueden clasificar de la siguiente manera:
No Señor. | Tipos y descripción |
---|---|
1 | Basic Types − Son tipos aritméticos y constan de dos tipos: (a) tipos enteros y (b) tipos de coma flotante. |
2 | Enumerated types − De nuevo son tipos aritméticos y se utilizan para definir variables a las que solo se les pueden asignar ciertos valores enteros discretos en todo el programa. |
3 | The type void − El especificador de tipo void indica que no hay ningún valor disponible. |
4 | Derived types − Incluyen (a) tipos de puntero, (b) tipos de matriz, (c) tipos de estructura, (d) tipos de unión y (e) tipos de función. |
Los tipos de matriz y los tipos de estructura se denominan colectivamente tipos agregados. El tipo de una función especifica el tipo de valor de retorno de la función. Veremos los tipos básicos en la siguiente sección, mientras que otros tipos se tratarán en los próximos capítulos.
Tipos de enteros
La siguiente tabla le brinda detalles sobre los tipos de enteros estándar con sus tamaños de almacenamiento y rangos de valores:
Tipo | Tamaño de almacenamiento | Rango de valores |
---|---|---|
carbonizarse | 1 byte | -128 a 127 o 0 a 255 |
char sin firmar | 1 byte | 0 hasta 255 |
char firmado | 1 byte | -128 hasta 127 |
En t | 2 o 4 bytes | -32,768 a 32,767 o -2,147,483,648 a 2,147,483,647 |
int sin firmar | 2 o 4 bytes | 0 a 65,535 o 0 a 4,294,967,295 |
corto | 2 bytes | -32.768 hasta 32.767 |
corto sin firmar | 2 bytes | 0 hasta 65.535 |
largo | 4 bytes | -2,147,483,648 a 2,147,483,647 |
largo sin firmar | 4 bytes | 0 a 4.294.967.295 |
Para obtener el tamaño exacto de un tipo o variable en una plataforma en particular, puede usar el sizeofoperador. La expresión sizeof (tipo) produce el tamaño de almacenamiento del objeto o tipo en bytes. A continuación se muestra un ejemplo para obtener el tamaño del tipo int en cualquier máquina:
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for int : %d \n", sizeof(int));
return 0;
}
Cuando compila y ejecuta el programa anterior, produce el siguiente resultado en Linux:
2013-09-07 22:21:39.155 demo[1340] Storage size for int : 4
Tipos de punto flotante
La siguiente tabla le brinda detalles sobre los tipos de punto flotante estándar con tamaños de almacenamiento y rangos de valores y su precisión:
Tipo | Tamaño de almacenamiento | Rango de valores | Precisión |
---|---|---|---|
flotador | 4 bytes | 1.2E-38 a 3.4E + 38 | 6 lugares decimales |
doble | 8 bytes | 2.3E-308 hasta 1.7E + 308 | 15 decimales |
doble largo | 10 bytes | 3.4E-4932 hasta 1.1E + 4932 | 19 posiciones decimales |
El archivo de encabezado float.h define macros que le permiten usar estos valores y otros detalles sobre la representación binaria de números reales en sus programas. El siguiente ejemplo imprimirá el espacio de almacenamiento tomado por un tipo flotante y sus valores de rango:
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for float : %d \n", sizeof(float));
return 0;
}
Cuando compila y ejecuta el programa anterior, produce el siguiente resultado en Linux:
2013-09-07 22:22:21.729 demo[3927] Storage size for float : 4
El tipo vacío
El tipo vacío especifica que no hay ningún valor disponible. Se utiliza en tres tipos de situaciones:
No Señor. | Tipos y descripción |
---|---|
1 | Function returns as void
Hay varias funciones en Objective-C que no devuelven valor o se puede decir que devuelven vacío. Una función sin valor de retorno tiene el tipo de retorno como vacío. Por ejemplo,void exit (int status); |
2 | Function arguments as void
Hay varias funciones en Objective-C que no aceptan ningún parámetro. Una función sin parámetro puede aceptarse como nula. Por ejemplo,int rand(void); |
Es posible que en este momento no entienda el tipo vacío, así que continuemos y cubriremos estos conceptos en los próximos capítulos.