Tipos de dados Objective-C
Na linguagem de programação Objective-C, os tipos de dados referem-se a um sistema extenso usado para declarar variáveis ou funções de diferentes tipos. O tipo de uma variável determina quanto espaço ela ocupa no armazenamento e como o padrão de bits armazenado é interpretado.
Os tipos em Objective-C podem ser classificados da seguinte forma -
Sr. Não. | Tipos e descrição |
---|---|
1 | Basic Types − Eles são tipos aritméticos e consistem em dois tipos: (a) tipos inteiros e (b) tipos de ponto flutuante. |
2 | Enumerated types − Eles são novamente tipos aritméticos e são usados para definir variáveis que só podem ser atribuídas a certos valores inteiros discretos em todo o programa. |
3 | The type void − O especificador de tipo void indica que nenhum valor está disponível. |
4 | Derived types − Eles incluem (a) tipos de ponteiro, (b) tipos de matriz, (c) tipos de estrutura, (d) tipos de união e (e) tipos de função. |
Os tipos de matriz e tipos de estrutura são chamados coletivamente de tipos agregados. O tipo de uma função especifica o tipo do valor de retorno da função. Veremos os tipos básicos na seção a seguir, enquanto outros tipos serão abordados nos próximos capítulos.
Tipos inteiros
A tabela a seguir fornece detalhes sobre os tipos inteiros padrão com seus tamanhos de armazenamento e intervalos de valores -
Tipo | Tamanho de armazenamento | Faixa de valor |
---|---|---|
Caracteres | 1 byte | -128 a 127 ou 0 a 255 |
caracter não identifcado | 1 byte | 0 a 255 |
char assinado | 1 byte | -128 a 127 |
int | 2 ou 4 bytes | -32.768 a 32.767 ou -2.147.483.648 a 2.147.483.647 |
int sem sinal | 2 ou 4 bytes | 0 a 65.535 ou 0 a 4.294.967.295 |
baixo | 2 bytes | -32.768 a 32.767 |
curto sem sinal | 2 bytes | 0 a 65.535 |
grandes | 4 bytes | -2.147.483.648 a 2.147.483.647 |
longo sem sinal | 4 bytes | 0 a 4.294.967.295 |
Para obter o tamanho exato de um tipo ou variável em uma plataforma específica, você pode usar o sizeofoperador. A expressão sizeof (tipo) fornece o tamanho do armazenamento do objeto ou tipo em bytes. A seguir está um exemplo para obter o tamanho do tipo int em qualquer máquina -
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for int : %d \n", sizeof(int));
return 0;
}
Quando você compila e executa o programa acima, ele produz o seguinte resultado no Linux -
2013-09-07 22:21:39.155 demo[1340] Storage size for int : 4
Tipos de ponto flutuante
A tabela a seguir fornece detalhes sobre os tipos de ponto flutuante padrão com tamanhos de armazenamento e intervalos de valor e sua precisão -
Tipo | Tamanho de armazenamento | Faixa de valor | Precisão |
---|---|---|---|
flutuador | 4 bytes | 1.2E-38 a 3.4E + 38 | 6 casas decimais |
em dobro | 8 bytes | 2,3E-308 a 1,7E + 308 | 15 casas decimais |
longo duplo | 10 bytes | 3.4E-4932 a 1.1E + 4932 | 19 casas decimais |
O arquivo de cabeçalho float.h define macros que permitem que você use esses valores e outros detalhes sobre a representação binária de números reais em seus programas. O exemplo a seguir imprimirá o espaço de armazenamento ocupado por um tipo flutuante e seus valores de intervalo -
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for float : %d \n", sizeof(float));
return 0;
}
Quando você compila e executa o programa acima, ele produz o seguinte resultado no Linux -
2013-09-07 22:22:21.729 demo[3927] Storage size for float : 4
O tipo vazio
O tipo void especifica que nenhum valor está disponível. É usado em três tipos de situações -
Sr. Não. | Tipos e descrição |
---|---|
1 | Function returns as void Existem várias funções em Objective-C que não retornam valor ou você pode dizer que retornam void. Uma função sem valor de retorno tem o tipo de retorno nulo. Por exemplo,void exit (int status); |
2 | Function arguments as void Existem várias funções em Objective-C que não aceitam nenhum parâmetro. Uma função sem parâmetro pode ser aceita como nula. Por exemplo,int rand(void); |
O tipo de vazio pode não ser compreendido por você neste ponto, então vamos prosseguir e abordaremos esses conceitos nos próximos capítulos.