Чтение онлайн

на главную - закладки

Жанры

Программирование на Objective-C 2.0
Шрифт:

Для восьмеричного значения символа можно указать от одной до трех восьмеричных цифр. В последних трех случаях используются шестнадцатеричные цифры. Символьные константы из расширенных наборов

Символьная константа из расширенных наборов записывается как L'x'. Такая константа имеет тин wchart, в соответствии с определением в файле . Константы из расширенных наборов символов - это способ представить сим-вол из набора символов, который не может быть полностью представлен с помощью обычного тина char. Константы символьных строк

Последовательность, содержащая нуль или более символов, заключенных в кавычки, представляет константу символьной строки (строковую константу). В эту

строку можно включить любой допустимый символ, в том числе любой из показанных выше escape-символов. Компилятор автоматически вставляет нуль- символ ( \0 ) в конце этой строки.

Обычно компилятор создаст указатель на первый символ строки, имеющий тип «указатель на char». Но если строковая константа используется с оператором sizeof для инициализации массива символов или с оператором &, то строковая константа имеет тип «массив элементов типа char».

Константы символьных строк не могут быть изменены программой. Конкатенация символьных строк

Препроцессор автоматически выполняет конкатенацию смежных строковых констант. Строки могут быть любым числом пробелов. Таким образом, три строки "a" "character" "string"

эквивалентны одной строке "a character string" после конкатенации. Многобайтные символы

Для перехода между различными состояниями в символьной строке можно использовать последовательности символов, определенные реализацией, что позволяет включать многобайтные символы. Строковые константы из расширенных наборов

Строковые константы из расширенного набора символов представляются в формате L'...'. Каждая такая константа имеет тип «указатель на wchar_t, где wchar_t определяется в <stddef.h>. Объекты константных символьных строк

Для создания объекта константной символьной строки нужно поместить сим-вол @ перед константной символьной строкой. Этот объект имеет типа NSConstantString.

Для смежных объектов константных символьных строк выполняется кон-катенация. Таким образом, три строковых объекта @"а" @" character " @"string"

эквивалентны одному строковому объекту @"а character string" Константы перечислимого типа

Идентификатор, который объявлен как значение для перечислимого типа, рассматривается как константа этого типа, но интерпретируется компилятором как тип int. Типы и объявления данных

В этом разделе приводится сводка базовых типов данных, производных типов данных, перечислимых типов данных, а также typedef. Здесь также приводится формат объявления переменных. Объявления

При определении какой-либо структуры, объединения (union), перечислимого типа данных или typedef компилятор не резервирует память автоматически. Из определения компилятор просто получает информацию об определенном типе данных и (необязательно) связывает с ним определенное имя. Такое определение можно делать внутри или вне функции или метода. В первом случае только данная функция или метод «знает» о его существовании; во втором случае определение распространяется на весь файл.

После того, как создано определение, можно объявлять переменные с этим типом данных. Для переменной любого типа данных будет выделена память, если только это не объявление extern (в этом случае память может быть выделена или не выделена, см. ниже раздел «Классы памяти и область действия».

Язык Objective-C позволяет также выделять память одновременно с объяв-лением определенной структуры, объединения или перечислимого типа дан-ных. Для этого нужно просто перечислить соответствующие переменные, прежде чем завершить определение символом «точка с запятой». Базовые типы данных

Базовые типы данных приводятся в таблице В.З. Чтобы объявить переменную с определенным типом данных, нужно использовать формат

тип имя = начальное_значение;

Присваивание начального значения переменной не является обязательным и подчиняется правилам, описанным ниже в разделе «Переменные». Для объявления нескольких переменных используется формат тип имя = начальное_значение, имя = начальное_значение, ...;

Перед объявлением типа можно дополнительно указать класс памяти, что описывается ниже в разделе «Переменные*. Если указан класс памяти и пере-менная должна иметь тип int, то int можно опустить. Например, static counter;

объявляет counter как переменную static int.

Табл. В.З. Сводка базовых типов данных Тип Описание int Целое значение, то есть значение, не содержащее десятичной точки; имеет точность не менее 32 бит. short int Целое значение, которое занимает половину памяти по сравнению с типом int на некоторых машинах; имеет точность не менее I6 бит. long int Целое значение увеличенной точности; имеет точность не менее 32 бит. long long int Целое значение дополнительно увеличенной точности; имеет точность не менее 64 бит. unsigned int Положительное целое значение; может содержать положительные значения, вдвое больше, чем int; имеет точность не менее 32 бит. float Значение с плавающей точкой, то есть может содержать знаки после десятичной точки; имеет точность не менее 6 цифр. double Значение с плавающей точкой увеличен ной точности; имеет точность не менее 10 цифр. long double Значение с плавающей точкой дополнительно увеличенной точности; имеет точность не менее 10 цифр. char Значение с одним символом; на некоторых машинах может добавляться знак при использовании в выражении. unsigned char То же самое, что и char, за исключением того, что в случае преобразования в целое значение не будет добавляться знак. signed char То же самое, что и char, за исключением того, что в случае преобразования в целое значение будет добавляться знак. _Bool Булев тип; хранит значение 0 или 1. float _Complex Комплексное число. double _Complex Комплексное число увеличенной точности. long double _Complex Комплексное число дополнительно увеличенной точности. void Не обозначает никакого типа; используется при объявлении функции или метода, не возвращающих никакого значения, или для явной отмены результатов выражения; используется также как обобщенный тип указателя (void *)

Отметим, что модификатор signed можно также указывать перед типами short irrt, int, long int и long long int. Поскольку эти типы всегда используются со знаком, модификатор не оказывает на них дополнительного влияния.

Типы данных Complex и .Imaginary позволяют объявлять комплексные и мнимые числа и работать с ними с помощью функций из библиотеки, поддерживающей арифметические операции с этими типами. Обычно следует включать в свою программу файл , где определяются макросы и объявляются функции для работы с комплексными и мнимыми числами. Например, переменную d типа double .Complex можно объявить и инициализировать со значением 5 + 10.5i с помощью оператора double .Complex cl = 5 + 10.5 * I;

Затем можно использовать библиотечные процедуры creal и cimag для извлечения вещественной и мнимой частей d соответственно.

Используемая реализация не обязательно поддерживает типы Complex и Jmaginary. Она может поддерживать один тип и не поддерживать другой. Производные типы данных

Производный (derived) тип данных формируется из одного или нескольких базовых типов данных. Производными типами данных являются массивы, структуры, объединения и указатели (включая объекты). Функция или метод, которые возвращают значение указанного типа, также считаются производным типом данных. Функции и классы описываются по отдельности соответственно в разделах «Функции» и «Классы». Массивы Одномерные массивы

Поделиться:
Популярные книги

Первый среди равных. Книга IX

Бор Жорж
9. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IX

Воин-Врач

Дмитриев Олег
1. Воин-Врач
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
6.00
рейтинг книги
Воин-Врач

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Жена по ошибке

Ардова Алиса
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Жена по ошибке

Император Пограничья 7

Астахов Евгений Евгеньевич
7. Император Пограничья
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Император Пограничья 7

Агенты ВКС

Вайс Александр
3. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Агенты ВКС

Неучтенный элемент. Том 1

NikL
1. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 1

Последний Паладин. Том 7

Саваровский Роман
7. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 7

Двойник короля 13

Скабер Артемий
13. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 13

Вперед в прошлое 7

Ратманов Денис
7. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 7

Отверженный. Дилогия

Опсокополос Алексис
Отверженный
Фантастика:
фэнтези
7.51
рейтинг книги
Отверженный. Дилогия

Звездная Кровь. Экзарх II

Рокотов Алексей
2. Экзарх
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Звездная Кровь. Экзарх II

Идеальный мир для Лекаря 16

Сапфир Олег
16. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 16

Отморозок 3

Поповский Андрей Владимирович
3. Отморозок
Фантастика:
попаданцы
5.00
рейтинг книги
Отморозок 3