double Complex u = 6.0 — 8.0*1; //действительная часть = 6.0, мнимая часть = -8.0
Библиотека complex.h, обсуждаемая позже в этом приложении, включает функции, которые возвращают действительный и мнимый компоненты комплексного числа.
Сводка: объявление простой переменной
1. Выберите необходимый тип.
2. Выберите имя для переменной.
3. Используйте следующий формат оператора объявления:
специфика тор- типа имя-переменной;
спецификатор-типа формируется из одного или более ключевых слов. Вот некоторые примеры:
int erest;
unsigned short cash;
4. Чтобы объявить несколько переменных одного и того же типа, отделяйте их имена друг от друга запятыми:
char ch, init, ans;
5. В операторе объявления переменную можно инициализировать:
float mass = 6.0Е24;4
Справочные материалы 841
Сводка: классы хранения Ключевые слова
auto, extern, static, register, _Thread_local (C11)
Общий комментарий
Класс хранения переменной определяет ее область видимости, связывание и продолжительность хранения. Класс хранения задается как местом ее определения, так и указанными в определении ключевыми словами. Переменные, определенные вне всех функций, являются внешними, имеют область видимости в пределах файла, внешнее связывание и статическую продолжительность хранения. Переменные, определенные внутри какой-то функции, являются автоматическими, если только не использовано одно из других ключевых слов. Они характеризуются областью видимости в пределах блока, отсутствием связывания и автоматической продолжительностью хранения. Переменным, определенным с ключевым словом static внутри функции, присуща область видимости в пределах блока, отсутствие связывания и статическая продолжительность хранения. Переменные, определенные с ключевым словом static вне функции, имеют область видимости в пределах файла, внутреннее связывание и статическую продолжительность хранения. В стандарте С11 появился новый квалификатор класса хранения: _Thread_local. Объявленный с этим квалификатором объект имеет потоковую продолжительность хранения, т.е. он существует в течение времени жизни потока, в котором объявлен, и инициализируется, когда поток начинается. Таким образом, объект подобного рода является локальным по отношению к потоку.
Свойства
Ниже представлена сводка по свойствам классов хранения.
Обратите внимание, что ключевое слово extern применяется только для повторного объявления переменной, которая была определена внешне где-то в другом месте. Объявление переменной за пределами функции делает ее внешней.
842 Приложение Б
В дополнение к этим классам хранения язык С предоставляет выделенную память. Такая память выделяется вызовом одной из функций семейства malloc(), возвращающей указатель, который может быть использован для доступа к памяти. Память остается выделенной до тех пор, пока не будет вызвана функция free() либо не завершится работа программы. Доступ к выделенной подобным образом памяти возможен из любой функции, которая располагает соответствующим указателем. Например, функция может передать значение указателя другой функции, давая ей возможность доступа к памяти.