14. Объявление переменной на внутреннем уровне с классом памяти static
14. Объявление переменной на внутреннем уровне с классом памяти static
В качестве примера рассмотрим объявление переменной i на внутреннем уровне с классом памяти static.
исходный файл filel.с
main()
{
}
fun1()
{static int i = 0; исходный файл file2.c fun2()
{static int i = 0; }
fun3()
{static int i = 0; }
В этом примере объявлены три различные переменные с классом памяти static, которые имеют одинаковые имена i. Все эти переменные обладают глобальным временем жизни, но видимы только в том блоке (функции), в котором они объявлены. Данные переменные можно применять для подсчета числа обращений к каждой из трех функций.
Переменные класса памяти static способны быть инициализированными константным выражением. Когда явной инициализации нет, то данной переменной присваивается нулевое значение. В случае инициализации константным адресным выражением 14б можно применять адреса любых внешних объектов, кроме адресов объектов, для которых класс памяти auto, так как их адрес не является константой и меняется при любом входе в блок. Инициализация осуществляется один раз при первом входе в блок.
Переменная, которая объявлена локально с классом памяти extern, служит ссылкой на переменную с таким же именем, определенную глобально в каком-либо из исходных файлов программы. Цель подобного объявления заключается в том, чтобы сделать определение переменной глобального уровня видимым внутри блока.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
var - Объявление локальной переменной
var - Объявление локальной переменной varИспользуется для объявления локальных переменныхСинтаксис:var variableName1 [= value1] [...,variableNameN [=valueN]];Аргументы:Описание:Создание переменной называется ее объявлением. Объявление - это этап формального создания переменной. Когда впервые
Создаем директорию $LFS/static
Создаем директорию $LFS/static Как уже говорилось во вступлении в данную главу, все, что будет инсталлировано в этой главе, попадет в директорию $LFS/static, чтобы не загрязнять раздел LFS кучей временных файлов. Нам необходимо лишь создать эту директорию:mkdir $LFS/staticДля удобства можно
На высшем уровне
На высшем уровне В мае 2010 года технология Punycode обрела воплощение в самых верхних доменных рядах. Появились первые многоязычные «официальные» домены верхнего уровня (арабские и кириллические).Перед этим Punycode, по заданию ICANN, тщательно испытали в лабораториях и выяснили,
15. Объявление переменной, которая служит именем внешнего массива
15. Объявление переменной, которая служит именем внешнего массива Рассмотрим пример: объявление переменной i, которая служит именем внешнего массива длинных целых чисел, на локальном уровне.исходный файл file1.cmain(){…}fun1(){extern long i[];…}/* исходный файл file2.c */long i[MAX] =
Стандартные модули и модули с классом
Стандартные модули и модули с классом Большинство создаваемых VBA-модулей - это стандартные модули. В предыдущих версиях VBA и в Visual Basic стандартные модули назывались модулями программного кода.Такие модули содержат объявления переменных и констант, определения
Ключевое слово static
Ключевое слово static Как уже говорилось в этой главе, члены классов (и структур) в C# могут определяться с ключевым cловом static В этом случае соответствующий член должен вызываться непосредственно на уровне класса, а не экземпляра типа. Для иллюстрации рассмотрим "знакомый"
Работа с классом FileInfo
Работа с классом FileInfo Как показывает пример MyDirectoryApp, класс FileInfo позволяет получить подробные сведения о файлах, имеющихся на вашем жестком диске (время создания, размер, атрибуты и т.д.), а также помогает создавать, копировать, перемещать и уничтожать файлы. Вдобавок к
КЛЮЧЕВЫЕ СЛОВА: auto, extern, static, register
КЛЮЧЕВЫЕ СЛОВА: auto, extern, static, register Одно из достоинств языка Си состоит в том, что он позволяет управлять ключевыми механизмами программы. Классы памяти языка Си - пример такого управления; они дают возможность определить, с какими функциями связаны какие переменные и
Объявление простой переменной
Объявление простой переменной Синтаксис:<спецификация типа> <идентификатор> [,<идентификатор>…];Объявление простой переменной определяет имя переменной и ее тип. Имя переменной задается <идентификатором>. <Спецификация типа> задает тип переменной. Тип
Объявление переменной перечислимого типа
Объявление переменной перечислимого типа Синтаксис:enum [<тег>]{<список-перечисления>} <описатель>[,<описатель>…];enum <тег> <идентификатор> [<идентификатор>…];Объявление переменной перечислимого типа задает имя переменной и определяет список именованных
Объявление переменной на внешнем уровне
Объявление переменной на внешнем уровне Объявления переменной на внешнем уровне используют спецификации класса памяти static и extern или вообще опускают их. Спецификации класса памяти auto и register не допускаются на внешнем уровне.Объявления переменных на внешнем уровне—это
Объявление переменной на внутреннем уровне
Объявление переменной на внутреннем уровне Любая из четырех спецификаций класса памяти может быть использована для объявления переменной на внутреннем уровне. Если спецификация класса памяти опущена в объявлении переменной на внутреннем уровне, то подразумевается
3.2.2. Имя переменной
3.2.2. Имя переменной Имя переменной, или идентификатор, может состоять из латинских букв, цифр и символа подчеркивания. Прописные и строчные буквы в именах различаются. Язык С++ не ограничивает длину идентификатора, однако пользоваться слишком длинными именами типа
Статическая типизация (static typing)
Статическая типизация (static typing) Когда в системе происходит вызов некоторого компонента определенным объектом, как узнать, что объект способен обработать вызов? (В терминологии сообщений: как узнать, что объект может обработать сообщение?) Чтобы гарантировать корректное
Запросы при работе с классом EXCEPTIONS
Запросы при работе с классом EXCEPTIONS Класс EXCEPTIONS обеспечивает несколько запросов для получения требуемой информации о последнем исключении. Прежде всего, можно получить целочисленный код этого исключения:exception: INTEGER-- Код последнего встретившегося исключенияoriginal_exception: