А функція, визначена користувачем це тип функції на мові C, який визначається самим користувачем для виконання певного завдання. Це забезпечує повторне використання коду та модульність нашої програми. Визначені користувачем функції відрізняються від вбудованих функцій, оскільки їхня робота визначається користувачем і для їх використання не потрібен файл заголовка.
У цій статті ми дізнаємося про визначена користувачем функція, прототип функції, визначення функції, виклик функції та різні способи, якими ми можемо передати параметри функції.
Як використовувати функції, визначені користувачем, у C?
Щоб використовувати функцію, визначену користувачем, ми спочатку повинні зрозуміти різні частини її синтаксису. Визначену користувачем функцію в C можна розділити на три частини:
- Прототип функції
- Визначення функції
- Виклик функції
Прототип функції C
Прототип функції також відомий як оголошення функції, яке визначає назва функції, параметри функції, і тип повернення . Прототип функції не містить тіла функції. В основному він використовується для інформування компілятора про існування визначеної користувачем функції, яку можна використовувати в наступній частині програми.
Синтаксис
return_type function_name (type1 arg1 , type2 arg2 , ... typeN argN );>
Ми також можемо пропустити назву аргументів у прототипі функції. Так,
return_type function_name (type1 , type2 , ... typeN);>
C Визначення функції
Після виклику функції визначення функції містить фактичні оператори, які будуть виконані. Усі оператори визначення функції включені всередину {} брекети.
Синтаксис
return_type function_name (type1 arg1 , type2 arg2 .... typeN argN ) { // actual statements to be executed // return value if any }> Примітка: Якщо виклик функції присутній після визначення функції, ми можемо пропустити частину прототипу функції та безпосередньо визначити функцію.
Виклик функції C
Щоб передати керування визначеній користувачем функції, нам потрібно її викликати. Функції викликаються за допомогою їхніх імен, за якими йдуть круглі дужки. Їхні аргументи передано в дужки.
Синтаксис
function_name(arg1, arg2, ... argN);>
Приклад функції, визначеної користувачем
Наступна програма на C ілюструє, як використовувати функції, визначені користувачем, у нашій програмі.
C
переліки Java
// C Program to illustrate the use of user-defined function> #include> // Function prototype> int> sum(>int>,>int>);> // Function definition> int> sum(>int> x,>int> y)> {> >int> sum;> >sum = x + y;> >return> x + y;> }> // Driver code> int> main()> {> >int> x = 10, y = 11;> >// Function call> >int> result = sum(x, y);> >printf>(>'Sum of %d and %d = %d '>, x, y, result);> >return> 0;> }> |
>
>
Завантажити xvideoservicethief ubuntu 14.04Вихід
Sum of 10 and 11 = 21>
Компоненти визначення функції
Існує три компоненти визначення функції:
- Параметри функції
- Тіло функції
- Повернене значення
1. Параметри функції
Параметри функції (також відомі як аргументи) — це значення, які передає викликається функція. Ми можемо передати жодного або будь-яку кількість параметрів функції.
Ми повинні визначити назву функції та її тип у визначенні функції, і ми можемо передати лише ту саму кількість і тип параметрів у виклику функції.
приклад
int foo ( int a, int b) ;>
тут, a і b є параметрами функції.
Примітка: Мова C надає метод, за допомогою якого ми можемо передавати змінну кількість аргументів функції. Такі функції називають варіативною функцією.
2. Тіло функції
Тіло функції — це набір операторів, укладених у дужки { }. Це оператори, які виконуються під час виклику функції.
приклад
int foo (int a, int b) { int sum = a + b; return sum; }> Ось заяви між { і } це тіло функції.
3. Повернене значення
Повернене значення — це значення, яке повертає функція її викликаючому. Функція може повертати лише одне значення, і це необов’язково. Якщо жодне значення не повертається, тип повернення визначається як void.
The return ключове слово використовується для повернення значення з функції.
Синтаксис
return ( expression );>
приклад
int foo (int a, int b) { return a + b; }> Примітка: Ми можемо використовувати покажчики або структури, щоб повернути кілька значень із функції в C.
Передача параметрів у функції, визначені користувачем
Ми можемо передати параметри функції в C двома методами:
- Виклик за значенням
- Телефонуйте за довідкою
1. Виклик за значенням
Під час виклику за значенням копія значення передається у функцію, а зміни, внесені до функції, не відображаються у значеннях. Фактичні та формальні аргументи створюються в різних місцях пам’яті.
приклад
C
// C program to show use of> // call by value> #include> void> swap(>int> a,>int> b)> {> >int> temp = a;> >a = b;> >b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d
'>, x,> >y);> >swap(x, y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }> |
>
читати з файлу csv у java
>Вихід
Values of x and y before swap are: 10, 20 Values of x and y after swap are: 10, 20>
Примітка: Значення не змінюються у виклику за значенням, оскільки вони не передаються за посиланням.
2. Виклик за посиланням
Під час виклику за посиланням адреса аргументу передається функції, а зміни, внесені до функції, відображаються назад у значеннях. Ми використовуємо вказівники потрібного типу для отримання адреси у функції.
приклад
рядок як масив
C
// C program to implement> // Call by Reference> #include> void> swap(>int>* a,>int>* b)> {> >int> temp = *a;> >*a = *b;> >*b = temp;> }> // Driver code> int> main()> {> >int> x = 10, y = 20;> >printf>(>'Values of x and y before swap are: %d, %d
'>, x,> >y);> >swap(&x, &y);> >printf>(>'Values of x and y after swap are: %d, %d'>, x,> >y);> >return> 0;> }> |
>
>Вихід
Values of x and y before swap are: 10, 20 Values of x and y after swap are: 20, 10>
Щоб отримати додаткові відомості, зверніться до цієї статті – Різниця між викликом за значенням і викликом за посиланням
Переваги призначених для користувача функцій
Переваги використання функцій у програмі наступні:
- За допомогою функцій можна уникнути дублювання коду в програмах. Код може бути написаний швидше і, як результат, більш читабельний.
- Код можна розділяти та контролювати за допомогою функцій. Цей процес відомий як розділяй і володарюй. Важко писати великі обсяги коду в рамках основної функції, а також тестувати та налагоджувати. Наше одне завдання можна розділити на кілька менших підзадач за допомогою функцій, таким чином зменшуючи загальну складність.
- Наприклад, якщо використовувати pow, sqrt тощо в C, не знаючи, як це реалізовано, можна приховати деталі реалізації за допомогою функцій.
- З незначними змінами або без змін функції, розроблені в одній програмі, можна використовувати в іншій, скорочуючи час розробки.