Типы данных Objective-C
В языке программирования Objective-C типы данных относятся к обширной системе, используемой для объявления переменных или функций разных типов. Тип переменной определяет, сколько места она занимает в хранилище и как интерпретируется сохраненный битовый шаблон.
Типы в Objective-C можно классифицировать следующим образом:
Sr. No. | Типы и описание |
---|---|
1 | Basic Types − Это арифметические типы и состоят из двух типов: (а) целочисленные типы и (б) типы с плавающей запятой. |
2 | Enumerated types − Это снова арифметические типы, и они используются для определения переменных, которым могут быть присвоены только определенные дискретные целочисленные значения во всей программе. |
3 | The type void − Спецификатор типа void указывает, что значение недоступно. |
4 | Derived types − Они включают (а) типы указателей, (б) типы массивов, (в) типы структур, (г) типы объединения и (д) типы функций. |
Типы массивов и структурные типы вместе называются агрегатными типами. Тип функции определяет тип возвращаемого значения функции. Мы увидим основные типы в следующем разделе, тогда как другие типы будут рассмотрены в следующих главах.
Целочисленные типы
В следующей таблице приведены подробные сведения о стандартных целочисленных типах с их размерами хранения и диапазонами значений.
Тип | Размер хранилища | Диапазон значений |
---|---|---|
символ | 1 байт | От -128 до 127 или от 0 до 255 |
беззнаковый символ | 1 байт | От 0 до 255 |
подписанный символ | 1 байт | От -128 до 127 |
int | 2 или 4 байта | -32 768 до 32 767 или от -2 147 483 648 до 2 147 483 647 |
беззнаковое целое | 2 или 4 байта | От 0 до 65 535 или от 0 до 4 294 967 295 |
короткая | 2 байта | От -32 768 до 32 767 |
беззнаковый короткий | 2 байта | От 0 до 65 535 |
долго | 4 байта | От -2 147 483 648 до 2 147 483 647 |
беззнаковый длинный | 4 байта | От 0 до 4 294 967 295 |
Чтобы получить точный размер типа или переменной на конкретной платформе, вы можете использовать sizeofоператор. Выражение sizeof (type) дает размер хранилища объекта или типа в байтах. Ниже приведен пример получения размера типа int на любой машине.
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for int : %d \n", sizeof(int));
return 0;
}
Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат в Linux:
2013-09-07 22:21:39.155 demo[1340] Storage size for int : 4
Типы с плавающей точкой
В следующей таблице приведены сведения о стандартных типах с плавающей запятой с размерами хранилища и диапазонами значений и их точностью.
Тип | Размер хранилища | Диапазон значений | Точность |
---|---|---|---|
плавать | 4 байта | 1.2E-38 до 3.4E + 38 | 6 знаков после запятой |
двойной | 8 байт | 2.3E-308 до 1.7E + 308 | 15 знаков после запятой |
длинный двойной | 10 байт | 3.4E-4932 до 1.1E + 4932 | 19 знаков после запятой |
Заголовочный файл float.h определяет макросы, которые позволяют вам использовать эти значения и другие сведения о двоичном представлении действительных чисел в ваших программах. В следующем примере будет напечатано пространство для хранения, занятое типом float, и его значениями диапазона.
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for float : %d \n", sizeof(float));
return 0;
}
Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат в Linux:
2013-09-07 22:22:21.729 demo[3927] Storage size for float : 4
Тип пустоты
Тип void указывает, что значение недоступно. Он используется в трех ситуациях:
Sr. No. | Типы и описание |
---|---|
1 | Function returns as void
В Objective-C есть различные функции, которые не возвращают значение, или вы можете сказать, что они возвращают void. Функция без возвращаемого значения имеет тип возврата как void. Например,void exit (int status); |
2 | Function arguments as void
В Objective-C есть различные функции, которые не принимают никаких параметров. Функция без параметров может быть пуста. Например,int rand(void); |
Тип void может быть вам непонятен на данном этапе, поэтому давайте продолжим, и мы рассмотрим эти концепции в следующих главах.