В този урок ще се научите да създавате дефинирани от потребителя функции в програмирането на C с помощта на пример.
Функцията е блок от код, който изпълнява определена задача.
C ви позволява да дефинирате функции според вашите нужди. Тези функции са известни като дефинирани от потребителя функции. Например:
Да предположим, че трябва да създадете кръг и да го оцветите в зависимост от радиуса и цвета. Можете да създадете две функции за решаване на този проблем:
createCircle()
функцияcolor()
функция
Пример: Дефинирана от потребителя функция
Ето пример за добавяне на две цели числа. За да изпълним тази задача, ние създадохме дефинирана от потребителя addNumbers()
.
#include int addNumbers(int a, int b); // function prototype int main() ( int n1,n2,sum; printf("Enters two numbers: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // function call printf("sum = %d",sum); return 0; ) int addNumbers(int a, int b) // function definition ( int result; result = a+b; return result; // return statement )
Прототип на функция
Прототипът на функцията е просто декларация на функция, която определя името, параметрите и типа на връщане на функцията. Не съдържа функционално тяло.
Прототип на функция дава информация на компилатора, че функцията може по-късно да се използва в програмата.
Синтаксис на прототип на функция
returnType functionName (аргумент тип1, аргумент тип2,…);
В горния пример int addNumbers(int a, int b);
е прототипът на функцията, който предоставя следната информация на компилатора:
- името на функцията е
addNumbers()
- типът на връщане на функцията е
int
- два аргумента от тип
int
се предават на функцията
Прототипът на функцията не е необходим, ако дефинираната от потребителя функция е дефинирана преди main()
функцията.
Извикване на функция
Управлението на програмата се прехвърля към дефинираната от потребителя функция, като я извика.
Синтаксис на извикване на функция
functionName (аргумент1, аргумент2, …);
В горния пример извикването на функцията се извършва с помощта на addNumbers(n1, n2);
оператор във main()
функцията.
Определение на функцията
Определението на функцията съдържа блока код за изпълнение на конкретна задача. В нашия пример добавяне на две числа и връщане.
Синтаксис на дефиниция на функция
returnType functionName (аргумент тип1, аргумент тип2, …) (// тяло на функцията)
Когато се извика функция, управлението на програмата се прехвърля към дефиницията на функцията. И компилаторът започва да изпълнява кодовете вътре в тялото на функция.
Предаване на аргументи на функция
При програмирането аргументът се отнася до променливата, предадена на функцията. В горния пример по време на извикването на функцията се предават две променливи n1 и n2.
Параметрите a и b приемат предадените аргументи в дефиницията на функцията. Тези аргументи се наричат формални параметри на функцията.
Типът аргументи, предадени на функция и формалните параметри трябва да съвпадат, в противен случай компилаторът ще изведе грешка.
Ако n1 е от тип char, a също трябва да бъде от тип char. Ако n2 е от тип float, променливата b също трябва да бъде от тип float.
Функция може да бъде извикана и без предаване на аргумент.
Декларация за връщане
Операторът return прекратява изпълнението на функция и връща стойност на извикващата функция. Контролът на програмата се прехвърля към извикващата функция след оператора return.
В горния пример стойността на резултантната променлива се връща към основната функция. Променливата на сумата във main()
функцията получава тази стойност.
Синтаксис на оператор return
връщане (израз);
Например,
върнете a; връщане (a + b);
Типът стойност, върнат от функцията, и типът на връщане, посочени в прототипа на функцията и дефиницията на функцията, трябва да съвпадат.
Посетете тази страница, за да научите повече за предаването на аргументи и връщането на стойност от функция.