Классы памяти
Класс памяти переменной (англ. Storage class) — понятие в некоторых языках программирования. Он определяет область видимости переменной, а также как долго переменная находится в памяти.
Классы памяти в C и C++
Переменная в языках программирования C и C++ должна принадлежать ровно одному классу памяти, что указывается с помощью ключевого слова, который пишется перед типом переменной.
auto— автоматическая (локальная). Автоматические переменные создаются при входе в функцию и уничтожаются при выходе из неё. Они видны только внутри функции или блока, в которых определены. В C++11 значение словаautoизменили.static— (локальная). 1) Если static — внутри функции. Для таких переменных область видимости обычная (внутри функции), но время жизни постоянное (значение сохраняется между вызовами функции). 2) static вне функции имеет другое значение.extern— (глобальная) переменная. Внешние переменные доступны везде, где описаны, а не только там, где определены. Использование ключевого слова extern позволяет функции использовать внешнюю переменную, даже если она определяется позже в этом или другом файле. Для таких переменных связывание с адресом происходит на этапе компоновки.register— (локальная). Это слово является всего лишь «рекомендацией» компилятору помещать часто используемую переменную в регистры процессора для ускорения программы.
Класс памяти можно не указывать, тогда действуют следующие умолчания:
- переменные, описанные внутри функции или блока, считаются локальными (auto)
- переменные, описанные вне всех функций, считаются внешними.
- функции считаются внешними.
Статическая переменная, описанная вне любой функции, становится внешней статической. Разница между внешней переменной и внешней статической переменной заключается в области их действия. Обычная внешняя переменная может использоваться функциями в любом файле, а внешняя статическая переменная может использоваться только функциями того же самого файла, причем после определения переменной.
OpenMP
Для обеспечения параллельного исполнения потоков в OpenMP предусмотрено 2 класса переменных: shared (общие, синхронизируемые) и private (локальные для каждого потока).
Ссылки
- Классы памяти и область действия Архивная копия от 1 июля 2016 на Wayback Machine глава из книги "Основы программирования на языке C", Н.А. Калинина, Н.И. Костюкова ISBN 978-5-9556-0057-4, Интуит.ру
Для улучшения этой статьи по информационным технологиям желательно: |
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Классы памяти, Что такое Классы памяти? Что означает Классы памяти?
Klass pamyati peremennoj angl Storage class ponyatie v nekotoryh yazykah programmirovaniya On opredelyaet oblast vidimosti peremennoj a takzhe kak dolgo peremennaya nahoditsya v pamyati Klassy pamyati v C i C Peremennaya v yazykah programmirovaniya C i C dolzhna prinadlezhat rovno odnomu klassu pamyati chto ukazyvaetsya s pomoshyu klyuchevogo slova kotoryj pishetsya pered tipom peremennoj auto avtomaticheskaya lokalnaya Avtomaticheskie peremennye sozdayutsya pri vhode v funkciyu i unichtozhayutsya pri vyhode iz neyo Oni vidny tolko vnutri funkcii ili bloka v kotoryh opredeleny V C 11 znachenie slova auto izmenili static lokalnaya 1 Esli static vnutri funkcii Dlya takih peremennyh oblast vidimosti obychnaya vnutri funkcii no vremya zhizni postoyannoe znachenie sohranyaetsya mezhdu vyzovami funkcii 2 static vne funkcii imeet drugoe znachenie extern globalnaya peremennaya Vneshnie peremennye dostupny vezde gde opisany a ne tolko tam gde opredeleny Ispolzovanie klyuchevogo slova extern pozvolyaet funkcii ispolzovat vneshnyuyu peremennuyu dazhe esli ona opredelyaetsya pozzhe v etom ili drugom fajle Dlya takih peremennyh svyazyvanie s adresom proishodit na etape komponovki register lokalnaya Eto slovo yavlyaetsya vsego lish rekomendaciej kompilyatoru pomeshat chasto ispolzuemuyu peremennuyu v registry processora dlya uskoreniya programmy Klass pamyati mozhno ne ukazyvat togda dejstvuyut sleduyushie umolchaniya peremennye opisannye vnutri funkcii ili bloka schitayutsya lokalnymi auto peremennye opisannye vne vseh funkcij schitayutsya vneshnimi funkcii schitayutsya vneshnimi Staticheskaya peremennaya opisannaya vne lyuboj funkcii stanovitsya vneshnej staticheskoj Raznica mezhdu vneshnej peremennoj i vneshnej staticheskoj peremennoj zaklyuchaetsya v oblasti ih dejstviya Obychnaya vneshnyaya peremennaya mozhet ispolzovatsya funkciyami v lyubom fajle a vneshnyaya staticheskaya peremennaya mozhet ispolzovatsya tolko funkciyami togo zhe samogo fajla prichem posle opredeleniya peremennoj OpenMPDlya obespecheniya parallelnogo ispolneniya potokov v OpenMP predusmotreno 2 klassa peremennyh shared obshie sinhroniziruemye i private lokalnye dlya kazhdogo potoka SsylkiKlassy pamyati i oblast dejstviya Arhivnaya kopiya ot 1 iyulya 2016 na Wayback Machine glava iz knigi Osnovy programmirovaniya na yazyke C N A Kalinina N I Kostyukova ISBN 978 5 9556 0057 4 Intuit ruDlya uluchsheniya etoj stati po informacionnym tehnologiyam zhelatelno Nevernyj parametr shablona rq Shablon rq Proverte ishodnyj tekst i obratites k dokumentacii Pozhalujsta posle ispravleniya problemy isklyuchite eyo iz spiska parametrov Posle ustraneniya vseh nedostatkov etot shablon mozhet byt udalyon lyubym uchastnikom
