×
Traktatov.net » Язык программирования C [Лекции и упражнения, 6-е изд.] » Читать онлайн
Страница 523 из 557 Настройки

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() либо не завершится работа программы. Доступ к выделенной подобным образом памяти возможен из любой функции, которая располагает соответствующим указателем. Например, функция может передать значение указателя другой функции, давая ей возможность доступа к памяти.