Вказівники на функції В мові С імя функції є константним вказівником на перший байт виконавчого коду функції. Це адреса оперативної памяті, яка відповідає.

Презентация:



Advertisements
Похожие презентации
Вказівники Вказівник (або покажчик) – особливий тип даних, значенням якого є адреса певного байта оперативної памяті. Значення покажчика - це беззнакове.
Advertisements

Функції з неоголошеними параметрами Інколи у функції потрібно передати деяке число фіксованих параметрів та невизначене число додаткових. В цьому випадку.
Класи пам'яті даних. Клас пам'яті, час існування та видимість об'єкта Кожен обєкт програми (змінна, функція,...) має свій тип і клас памяті. Тип визначає.
Опрацювання структур у функціях Оскільки мова С інтерпретує структури як звичайні змінні, а не вказівники, можна передавати значення структури у функцію.
Обмін даними з файлами У компілятор мови С не включено спецзасобів для введення/виведення даних, тому обмін даними реалізовано через бібліотечні функції.
Програми з розгалуженнями.Команда IF Підготувала Крилік Анастасія 7-Д.
Основи алгоритмізації та програмування Підпрограми.
Основи алгоритмізації та програмування Надання значень величинам. Вказівки присвоєння та введення.
Вказівники і масиви в мові С++. План. 1.Загальні відомості про вказівники. 2.Операції над вказівниками. 3.Вказівники і масиви. 4.Масив як параметр функції.
Консольне введення даних За призначенням клавіші клавіатури можна поділити на групи: – символьні; – клавіші керування: Home, End, …, Delete та чотири стрілки;
Вказівники, масиви. Структури Проф. Куссуль Н.М..
Рекурсія Програми можуть містити виклик однієї або декількох підпрограм. Підпрограми можуть, в свою чергу, викликати інші підпрограми. А чи може підпрограма.
Вирази та операції Вираз – послідовність операндів, обєднаних знаками операцій та круглими дужками. Операнди – обєкти, над якими виконуються операції;
Запити в Access Запити в базі даних Запити використовуються для перегляду, зміни й аналізу даних різними способами. Основні операції з використанням.
Обробка символьних рядків в мові С++. План 1.Загальні відомості про рядковий тип даних. 2.Рядок як параметр функції.
Типи даних мови Visual Basic та їх опис. Опис величин Величина - це об'єкт, який має стале або змінне значення. Основні характеристики величин: ім'я,
Введення даних і виведення результатів. Використання присвоєння Нехай змінній а потрібно надати початкове значення 5, змінній b 10, змінній с -2,5, змінній.
Цикли в мові С++ Цикл - це процес виконання певного набору команд деяку кількість разів.
9 клас Парабола Аналізуючи формули у = х 2 і у = х 2 +2, зауважимо, що при одному і тому самому значенні х значення другої функції завжди на 2 більше.
Масив – це впорядкований іменований набір із фіксованої кількості однотипних даних. а 1 а 2 а 3 в 1 в 2 с 1 Доступ до будь – якого елементу масиву здійснюється.
Транксрипт:

Вказівники на функції В мові С імя функції є константним вказівником на перший байт виконавчого коду функції. Це адреса оперативної памяті, яка відповідає точці входу даної функції. У разі виклику функції зчитується перша команда за цією адресою, а далі всі наступні команди. Адресу функції можна присвоїти вказівнику та використовувати його для звертання до функції. Оголошення вказівника на функцію тип_значення_функції (*імя_вказівника)(список типів_параметрів_функції) Операція – функція має вищий пріоритет ніж операція * - вказівник, тому конструкцію *імя_вказівника необхідно охопити дужками. Інакше дане оголошення було би прототипом функції, яка використовує відповідні параметри і повертає значення, яке є вказівником.

Приклад вказівника на функцію, що має два параметри і повертає вказівник на дані з типом char char* (*pfun) (char*, unsigned) Якщо оголошено дві функції char* FindWord (char* st, unsigned num); char* DelWord (char* sent, unsigned k); то коректними будуть присвоєння pfun = FindWord або pfun = &FindWord pfun = DelWord або pfun = & DelWord Вказівник можна застосовувати для звертання до функції. Після першого присвоєння, наступне звертання (*pfun)(str, 3); рівнозначне виклику FindWord (str, 3); Можна використовувати спрощене звертання pfun (str, 3), але краще конструкцію з розадресованим вказівником.

Приклад #include #include void print(char *s) { puts(s); } void main(void) { void (*efct)(char *s); efct=&print; /* efct=print */ (*efct)("Function Print!"); /* efct("Function Print!"); */ }

Покажчикам на функції можна присвоювати адреси стандартних бібліотечних функцій. #include #include #include void main(void) { double (*fn)(double); float y,x=1; fn=sin; y=fn(x); printf("sin(%g)==%g\n",x,y); fn=cos; y=fn(x); printf("cos(%g)==%g\n",x,y); }

Найчастіше вказівники на функції використовуються як формальні параметри у функціях вищого рівня. Це дає змогу створювати функції, які використовують інші функції без огляду на їх конкретні імена та внутрішнє наповнення. Приклад #include #include #include double fn(double (*pfn)(double ), double x) { double y=pfn(x); printf("y==%g\n", y); return y; }

double fun1 (double x) { return sin(x)*cos(x); } double fun2 (double x) { if (x>=0) return 3*cos(1.5*x) else return cos(x)*cos(x); } void main(void) { fn(sin,1); fn(fun1,1); fn(&fun2,1); }