🗊 Презентация Структуры, препроцессор, динамическая память

Категория: Образование
Нажмите для полного просмотра!
Структуры, препроцессор, динамическая память, слайд №1 Структуры, препроцессор, динамическая память, слайд №2 Структуры, препроцессор, динамическая память, слайд №3 Структуры, препроцессор, динамическая память, слайд №4 Структуры, препроцессор, динамическая память, слайд №5 Структуры, препроцессор, динамическая память, слайд №6 Структуры, препроцессор, динамическая память, слайд №7 Структуры, препроцессор, динамическая память, слайд №8 Структуры, препроцессор, динамическая память, слайд №9 Структуры, препроцессор, динамическая память, слайд №10 Структуры, препроцессор, динамическая память, слайд №11 Структуры, препроцессор, динамическая память, слайд №12 Структуры, препроцессор, динамическая память, слайд №13 Структуры, препроцессор, динамическая память, слайд №14

Вы можете ознакомиться и скачать презентацию на тему Структуры, препроцессор, динамическая память. Доклад-сообщение содержит 14 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Введение в С++ Структуры, препроцессор, динамическая память
Описание слайда:
Введение в С++ Структуры, препроцессор, динамическая память

Слайд 2


Структуры, препроцессор, динамическая память Структуры Формат: struct { } ; struct ; struct [] { } ; Аналоги структур в реальной жизни – различные...
Описание слайда:
Структуры, препроцессор, динамическая память Структуры Формат: struct { } ; struct ; struct [] { } ; Аналоги структур в реальной жизни – различные формуляры, анкеты, учетные карточки. Существует два способа доступа к полям структурных переменных: . -> Пример: электронная картотека для домашней библиотеки struct form { char *ptitle; наименование книги char *pauthor; автор float price; стоимость } ; struct form books [ 1024 ] ; картотека есть массив структур struct form *pbook = books ; указатель на массив структур

Слайд 3


Структуры, препроцессор, динамическая память Разработаем getprice – функцию для поиска книги в картотеке по её названию и выдачи стоимости книги....
Описание слайда:
Структуры, препроцессор, динамическая память Разработаем getprice – функцию для поиска книги в картотеке по её названию и выдачи стоимости книги. Вариант 1 – используем индексы Вариант 2 – используем адресную арифметику

Слайд 4


Структуры, препроцессор, динамическая память Битовые поля Рассмотрим структуру специального вида: struct { unsigned field_1 : 3 ; unsigned field_2 :...
Описание слайда:
Структуры, препроцессор, динамическая память Битовые поля Рассмотрим структуру специального вида: struct { unsigned field_1 : 3 ; unsigned field_2 : 3 ; unsigned : 2 ; unsigned mask : 8 ; } fields ; Работа с битовыми полями по именам: fields.field_1 = 0; fields.field_2 = 07; fields.mask ^= fields.mask; Именованные битовые поля используются для экономии памяти и для работы с аппаратными регистрами.

Слайд 5


Структуры, препроцессор, динамическая память Объединения Формат: union { } ; union ; union [] { } ; Объединения – это такие структуры, в которых поля...
Описание слайда:
Структуры, препроцессор, динамическая память Объединения Формат: union { } ; union ; union [] { } ; Объединения – это такие структуры, в которых поля накладываются друг на друга. Примеры:

Слайд 6


Структуры, препроцессор, динамическая память Определение типа Формат: typedef ; Примеры:
Описание слайда:
Структуры, препроцессор, динамическая память Определение типа Формат: typedef ; Примеры:

Слайд 7


Структуры, препроцессор, динамическая память Препроцессор Препроцессор есть текстовый процессор, который просматривает исходный текст до компиляции и...
Описание слайда:
Структуры, препроцессор, динамическая память Препроцессор Препроцессор есть текстовый процессор, который просматривает исходный текст до компиляции и решает три задачи: обрабатывает символические имена; отыскивает и вставляет файлы; осуществляет условную компиляцию. Директивы #define и #undef формат: #define #define ( ) // это макрос #undef примеры: #define LENGTH 80 #define ABS (x) ( (x) >0 ? (x) : -(x) ) #define MAX (x, y) ( (x) > (y) ? (x) : (y) ) Зачем нужны скобки? Потому что возможны побочные эффекты, например #define MAX (a, b+c) ( a > b + c ? a : b + c ) #define ABS ( ++p ) ( ++p >0 ? ++p : -++p )

Слайд 8


Структуры, препроцессор, динамическая память Директива #include формат: #include #include “имя-пути” примеры: #include // ищет файл в стандартных...
Описание слайда:
Структуры, препроцессор, динамическая память Директива #include формат: #include #include “имя-пути” примеры: #include // ищет файл в стандартных директориях #include “c:file1.h” // ищет файл в конкретной директории #include “file2.h” // ищет файл в текущей директории Условная компиляция реализуется с помощью следующих директив: #if #elif #else #endif defined undef формат: #if [ ] [ #elif [ ] ] [ #elif [ ] ] ……………………………….. [ #else [ ] ] #endif Такие конструкции часто используются при инсталляции и настройке программных продуктов.

Слайд 9


Структуры, препроцессор, динамическая память пример: #if ( sizeof (void* ) == 2 ) #define _SMALL_ #elif ( sizeof (void* ) == 4 ) #define _LARGE_ //...
Описание слайда:
Структуры, препроцессор, динамическая память пример: #if ( sizeof (void* ) == 2 ) #define _SMALL_ #elif ( sizeof (void* ) == 4 ) #define _LARGE_ // модель памяти #else printf ( “ ? “) ; #endif пример: #if ( defined ( _SMALL_) && undef ( _LARGE_ ) ) #include “file.h” #endif Популярные макросы для работы с символами находятся в файле : isalpha ( c ) - символ есть буква? isdigit ( c ) - символ есть цифра? isalnum ( c ) - символ есть буква или цифра? isspace ( c ) - пробельный символ (пробелы, табуляция, переводы строки? islower ( c ) - символ нижнего регистра? isupper ( c ) - символ верхнего регистра? ………………..

Слайд 10


Структуры, препроцессор, динамическая память Динамическая память Динамическая память выделяется и освобождается по явным запросам из программы. Время...
Описание слайда:
Структуры, препроцессор, динамическая память Динамическая память Динамическая память выделяется и освобождается по явным запросам из программы. Время жизни объектов, размещенных в динамической памяти, контролируется программистом явным образом. В заголовочном файле описаны прототипы функций malloc, calloc, realloc, free - все они рабочие, но являются анахронизмами. Более корректный способ получения динамической памяти следующий: < указатель > = new [ ( ) ] Если динамическая память будет успешно выделена, операция new вернет адрес выделенной памяти. В противном случае она вернет значение NULL. Освободить ранее полученную динамическую память можно операцией delete delete < указатель > Попытка освободить динамическую память, которая не была вами получена, приведет к ошибке времени выполнения. примеры: int *p = new int (3); char *s = new char [20];

Слайд 11


Структуры, препроцессор, динамическая память Пример: ввод строк в динамическую память и выдача их в обратном порядке.
Описание слайда:
Структуры, препроцессор, динамическая память Пример: ввод строк в динамическую память и выдача их в обратном порядке.

Слайд 12


Структуры, препроцессор, динамическая память Программный стек Программный стек – часть памяти компьютера, которая используется для размещения...
Описание слайда:
Структуры, препроцессор, динамическая память Программный стек Программный стек – часть памяти компьютера, которая используется для размещения автоматических переменных и обмена данными между функциями. Рассмотрим следующий фрагмент кода:

Слайд 13


Структуры, препроцессор, динамическая память Рисунок, поясняющий работу программного стека:
Описание слайда:
Структуры, препроцессор, динамическая память Рисунок, поясняющий работу программного стека:

Слайд 14


Структуры, препроцессор, динамическая память Несколько причудливых описаний Пусть имеется такое описание: struct { int x; char *y; } *p;...
Описание слайда:
Структуры, препроцессор, динамическая память Несколько причудливых описаний Пусть имеется такое описание: struct { int x; char *y; } *p; Интерпретируйте следующие выражения в соответствии с правилами языка Си: ++p -> x p++ -> x *p -> y *p -> y++ *p -> ++y *p++ -> y *++p -> y p+++y Студенты, допустившие не более 1 ошибки, получают 5 баллов за активность.



Похожие презентации
Mypresentation.ru
Загрузить презентацию