🗊 Презентация Макровизначення в мові С (С++)

Нажмите для полного просмотра!
Макровизначення в мові С (С++), слайд №1 Макровизначення в мові С (С++), слайд №2 Макровизначення в мові С (С++), слайд №3 Макровизначення в мові С (С++), слайд №4 Макровизначення в мові С (С++), слайд №5 Макровизначення в мові С (С++), слайд №6 Макровизначення в мові С (С++), слайд №7 Макровизначення в мові С (С++), слайд №8 Макровизначення в мові С (С++), слайд №9 Макровизначення в мові С (С++), слайд №10 Макровизначення в мові С (С++), слайд №11 Макровизначення в мові С (С++), слайд №12 Макровизначення в мові С (С++), слайд №13

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

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


Слайд 1


Макровизначення Макровизначення (макропідстановка або просто макрос) в мові С(С++) – це вираз, який при компіляції файлу з кодом програми...
Описание слайда:
Макровизначення Макровизначення (макропідстановка або просто макрос) в мові С(С++) – це вираз, який при компіляції файлу з кодом програми підставляється замість імені, що визначає дану макропідстановку. Макровизначення обробляються препроцесором – програмою, яка аналізує програмний код і готує його для роботи компілятора. Команди, які має обробляти препроцесор, записуються у вигляді директив. Директиви препроцесора починаються із знака #: #define Приклади: #define MAX_SIZE 10 int main () { int arr [MAX_SIZE]; // MAX_SIZE заміняється на 10 // інші інструкції }

Слайд 2


Зауваження Зауваження Зверніть увагу – текст макросу просто “підставляється”, тому макровизначення виду: #define MAX_SIZE = 10 або #define MAX_SIZE...
Описание слайда:
Зауваження Зауваження Зверніть увагу – текст макросу просто “підставляється”, тому макровизначення виду: #define MAX_SIZE = 10 або #define MAX_SIZE 10; є помилковими. Допускається визначення макросів з параметрами – звертання до них виглядає як звертання до функцій. Багато стандартних функцій бібліотек С/С++ є макровизначеннями. Директива #undef зупиняє дію ідентифікатора, який був визначений раніше і дозволяє його повторне визначення в інших цілях. Операція ## препроцесором сприймається як операція конкатенації (тобто зчеплення або з'єднання).

Слайд 3


Директива макровизначення з параметрами: #define () Дуже важливе зауваження: Між ідентифікатором макросу та круглою дужкою, що відкриває список його...
Описание слайда:
Директива макровизначення з параметрами: #define () Дуже важливе зауваження: Між ідентифікатором макросу та круглою дужкою, що відкриває список його параметрів, пробілу немає. Приклад: #define cube(x) x*x*x int main () { int i = 1; float x = 1.0; cout

Слайд 4


Ще один приклад: Ще один приклад: // Цей знак ## конкатенує аргументи #define concat(left, right) left ## right int main () { // визначаємо складений...
Описание слайда:
Ще один приклад: Ще один приклад: // Цей знак ## конкатенує аргументи #define concat(left, right) left ## right int main () { // визначаємо складений ідентифікатор ab int concat (a, b) = 100; // використовуємо цей ідентифікатор cout

Слайд 5


Ще один приклад: Ще один приклад: #define max(x, y) (x > y) ? x : y int main () { int i = 1, j = 2; float x = 1.0, y = 2.0; int m = max(i, j); cout
Описание слайда:
Ще один приклад: Ще один приклад: #define max(x, y) (x > y) ? x : y int main () { int i = 1, j = 2; float x = 1.0, y = 2.0; int m = max(i, j); cout

Слайд 6


Проте – спробуємо проаналізувати, як спрацюють дані макровизначення у наступних викликах: Проте – спробуємо проаналізувати, як спрацюють дані...
Описание слайда:
Проте – спробуємо проаналізувати, як спрацюють дані макровизначення у наступних викликах: Проте – спробуємо проаналізувати, як спрацюють дані макровизначення у наступних викликах: int main () { int i = 10, j = 20; float x = 10.0, y = 20.0; cout

Слайд 7


Внесемо очевидні виправлення у тексти макровизначень: Внесемо очевидні виправлення у тексти макровизначень: #define cube(x) ((x)*(x)*(x)) #define...
Описание слайда:
Внесемо очевидні виправлення у тексти макровизначень: Внесемо очевидні виправлення у тексти макровизначень: #define cube(x) ((x)*(x)*(x)) #define max(x, y) (((x) > (y)) ? (x) : (y)) Тепер їх використання не приводить до проблем: int main () { int i = 1, j = 2; float x = 1.0, y = 2.0; cout

Слайд 8


Директиви компіляції Ще одна група директив препроцесора пов'язана з компіляцією програмних файлів. Для підключення так званих header-файлів (файлів...
Описание слайда:
Директиви компіляції Ще одна група директив препроцесора пов'язана з компіляцією програмних файлів. Для підключення так званих header-файлів (файлів заголовків), тобто файлів, які містять визначення констант та макросів, декларації функцій, класів, шаблонів, тощо, використовуються директиви #include та #include “ідентифікатор header-файлу” У першому випадку відповідний файл має знаходитись у системних директоріях, а в другому – у поточній директорії, яка і містить файл, що компілюється.

Слайд 9


Інша група директив використовується для так званої умовної компіляції – керування роботою препроцесора. Це директиви #if, #elif, #else та #endif....
Описание слайда:
Інша група директив використовується для так званої умовної компіляції – керування роботою препроцесора. Це директиви #if, #elif, #else та #endif. Порядок їх використання наступний : #if константний_вираз_1 // тут деякі директиви #elif константний_вираз_2 // тут деякі директиви #else // тут деякі директиви #endif Якщо цілий константний вираз у директиві #if має ненульове значення (ІСТИНА), то при компіляції включаються всі наступні рядки до #elif або #endif або #else (elif діє як гілка else-if).

Слайд 10


Приклад. Приклад. Змінюючи константу VERSION, керуємо включенням файлів: #define VERSION 3 #if VERSION == 1 #define INCLUDE_FILE "file_1.h"...
Описание слайда:
Приклад. Приклад. Змінюючи константу VERSION, керуємо включенням файлів: #define VERSION 3 #if VERSION == 1 #define INCLUDE_FILE "file_1.h" #elif VERSION == 2 #define INCLUDE_FILE "file_2.h" #else #define INCLUDE_FILE "file_3.h" #endif #include INCLUDE_FILE

Слайд 11


Для того, щоб позбавитись повторних включень файлів заголовків, використовують наступні директиви: #ifndef #define // код, який включається у...
Описание слайда:
Для того, щоб позбавитись повторних включень файлів заголовків, використовують наступні директиви: #ifndef #define // код, який включається у компіляцію #endif Перша директива перевіряє, чи був визначений директивою #define . Якщо ні, то наступна директива його визначає і при компіляції включається текст аж до директиви #endif.

Слайд 12


Інструкція typedef Інструкція typedef дозволяє визначати альтернативне ім'я для існуючого типу. Приклад. typedef unsigned short WORD_; Тепер WORD_ є...
Описание слайда:
Інструкція typedef Інструкція typedef дозволяє визначати альтернативне ім'я для існуючого типу. Приклад. typedef unsigned short WORD_; Тепер WORD_ є новою назвою для типу unsigned short. Тому допустима декларація: WORD_ val; // val має тип unsigned short Приклад. typedef struct //визначаємо структуру matrix { float mas [NR][NC]; int nr; int nc; } matrix; Тепер matrix є назвою для структури визначеного вище типу.

Слайд 13


З допомогою інструкції typedef можна З допомогою інструкції typedef можна визначити і тип вказівника на функцію: typedef double (*p_function)...
Описание слайда:
З допомогою інструкції typedef можна З допомогою інструкції typedef можна визначити і тип вказівника на функцію: typedef double (*p_function) (double); Тепер p_function – це назва типу вказівника на функцію, яка приймає аргумент типу double та повертає результат типу double. Цьому вказівнику можна присвоїти ідентифікатор будь- якої функції відповідного виду (ідентифікатор функції є вказівником на неї) або передати у функцію в якості параметра.



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