- •1.4 Основы концепции .Net
- •1.5 Программные системы ms vs.Net, комментарии.
- •1.7 Современные системы разработки с программ
- •1.10 Зона видимости функций, взаимосвязь с ресурсами.
- •1.11 Образное представление функций и их вызовов в программной памяти.
- •1.12 Что такое переменная, три уровня интерпретации.
- •1.15 Квалификаторы классов памяти в с, комментарии.
- •1.17 Размещение массивов в памяти, варианты обращения к элементам.
- •1.19 Что из себя представляет программа в памяти эвм, дизайн образа.
- •2.1 Заголовочные файлы, назначение, примеры
- •2.3 Что такое библиотеки stl (один из авторов) и atl, назначение.
- •2.4 Функции в с, назначение, программный дизайн, примеры.
- •2.5 Inline – функции в с, особенности их использования
- •2.6 Вызовы функций по значению и по ссылке, смысловое содержание.
- •2.7 Организация вызовов функций по ссылке, варианты, примеры.
- •2.8 Вызов функции через использование параметра – ссылки – псевдонима переменной.
- •2.12 Что такое сигнатуры – уникальные кодовые идентификаторы, пример.
- •2.16 Передача массивов функциям, варианты, примеры.
- •3.1 Переменная в программировании, назначение, отличительные особенности.
- •3.12 Концептуальное назначение массивов в программировании, примеры.
- •3.13 Примеры действий над массивами в с.
- •3.15 Символьные массивы и строки в с, примеры.
- •3.17 Отличительные особенности локальных массивов классов памяти auto и static.
2.3 Что такое библиотеки stl (один из авторов) и atl, назначение.
Библиотека стандартных шаблонов STL (Standard Template Library) - один из тех немногих программных продуктов, чье появление было встречено единодушно всеми профессиональными программистами.
Практически все современные компиляторы Cи++ содержат библиотеку STL. Изначально она настроена на работу практически с любыми данными, что обеспечивается набором шаблонов функций и классов.
Четыре основных компонента составляют структуру STL:
итераторы - специальные указатели, позволяющие алгоритмам перемещаться по данным контейнера;
алгоритмы - вычислительные процедуры;
контейнеры - блоки хранения данных, управления ими и размещения;
функциональные объекты - инкапсулируют функции в объекте для использования другими компонентами.
ATL расшифрвывается как Active Template Library. Это библиотека классов и шаблонов, предназначенная для разработки собственных компонетов.
Вообще говоря в Visual C++ есть две основные библиотеки - это MFC и ATL (библиотеку классов для платформы .NET мы пока оставляем за скобками). Библиотека MFC предназначена в основном для создания приложений с пользовательским интерфейсом (окна, диалоги и т. п.). Наряду с такими типами приложений есть и другой тип - без пользовательского интерфейса. Это могут быть, например, различные службы, предоставляющие другим приложениям свойства и методы. Такие службы могут что-то там по запросу вычислять и возвращать результат через свои методы. Именно для таких приложений без пользовательского интерфейса и предназначена библиотека ATL. Еще одно применение этой библиотеки - это создание собственных элементов ActiveX. Например, с помощью библиотеки ATL вы можете создать собственную особую кнопку (скажем, круглую) и затем использовать ее в программах на VB или Delphi. Собственные элементов ActiveX вы можете создавать и с помощью библиотеки MFC, но по размеру они получаются существенно больше, что для элемента ActiveX является существенным минусом - ведь часто его надо загружать из Интернета. Как плату за меньший размер вам приходится программировать прорисовку элемента с помощью библиотеки ATL на более низком уровне - а именно на уровне API-функций. За все приходится платить.
2.4 Функции в с, назначение, программный дизайн, примеры.
Функции являются основным программным элементом «классического С». Они используются и расширением системы С – С++ (но в С++ основа - классы).
Определение функции: type name_fun(type x, type y) {…}
Прототип функции: type name_fun(type , type );
Вызов функции: name_fun(x, y);
2.5 Inline – функции в с, особенности их использования
Оперативная память представляет собой таблицу с 64 столбцами и млн-ми строк. Любая функция в ней размещается как последовательность набора машинных слов.
1 |
2
|
3
|
4
|
5 |
Вызов addr в др фун |
addr без inline
inline – встроенные функции, блоки их машинных кодов встраиваются полностью в каждое место их вызова в вызывающей функции. В inline вместо ячейки с адресом вызова функции будет размещаться блок машинных слов со встроенной функцией. При следующем вызове в инлайн блок повторяется снова.
Смысл инлайн
Повышение быстродействия программы. Исключено обращение в другую область памяти. Но! Занимает в памяти больше места. Такой способ уместно использовать в небольших функциях с ограниченным числом вызовов. Компилятор может игнорировать инлайн-указания. Изза числа вызовов и размера он может решить, что не хватит ресурсов и проигнорирует инлайн.
