В c можем да разделим голяма програма на основни градивни елементи, известни като функция. Функцията съдържа набор от програмни изрази, затворени от {}. Една функция може да бъде извикана многократно, за да осигури многократна употреба и модулност на C програмата. С други думи, можем да кажем, че колекцията от функции създава програма. Функцията е известна още като процедура или подпрограма на други езици за програмиране.
Предимство на функциите в C
Има следните предимства на C функциите.
- Използвайки функции, можем да избегнем пренаписването на същата логика/код отново и отново в програма.
- Можем да извикваме C функции произволен брой пъти в програма и от всяко място в програмата.
- Можем лесно да проследим голяма C програма, когато е разделена на множество функции.
- Повторната употреба е основното постижение на C функциите.
- Обаче извикването на функция винаги е излишно в C програма.
Функционални аспекти
Има три аспекта на C функция.
SN | C функционални аспекти | Синтаксис |
---|---|---|
1 | Декларация на функция | return_type име_на_функция (списък с аргументи); |
2 | Извикване на функция | име_на_функция (списък_аргументи) |
3 | Дефиниция на функцията | return_type име_на_функция (списък с аргументи) {тяло на функция;} |
Синтаксисът за създаване на функция на език c е даден по-долу:
return_type function_name(data_type parameter...){ //code to be executed }
Видове функции
Има два типа функции в програмирането на C:
Върната стойност
C функция може или не може да върне стойност от функцията. Ако не трябва да връщате стойност от функцията, използвайте void за типа на връщане.
Нека видим прост пример за C функция, която не връща никаква стойност от функцията.
Пример без върната стойност:
void hello(){ printf('hello c'); }
Ако искате да върнете някаква стойност от функцията, трябва да използвате всеки тип данни като int, long, char и т.н. Типът на връщането зависи от стойността, която трябва да бъде върната от функцията.
bash проверява дали променливата на средата е зададена
Нека видим прост пример за C функция, която връща int стойност от функцията.
Пример с върната стойност:
int get(){ return 10; }
В горния пример трябва да върнем 10 като стойност, така че връщаният тип е int. Ако искате да върнете стойност с плаваща запетая (напр. 10.2, 3.1, 54.5 и т.н.), трябва да използвате float като тип на връщане на метода.
float get(){ return 10.2; }
Сега трябва да извикате функцията, за да получите стойността на функцията.
Различни аспекти на извикване на функция
Една функция може или не може да приема аргументи. Може или не може да върне никаква стойност. Въз основа на тези факти, има четири различни аспекта на извикванията на функции.
- функция без аргументи и без върната стойност
- функция без аргументи и с връщана стойност
- функция с аргументи и без връщана стойност
- функция с аргументи и с връщана стойност
Пример за функция без аргумент и върната стойност
Пример 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Изход
изрязване на низове в javascript
Hello Javatpoint
Пример 2
#include void sum(); void main() { printf(' Going to calculate the sum of two numbers:'); sum(); } void sum() { int a,b; printf(' Enter two numbers'); scanf('%d %d',&a,&b); printf('The sum is %d',a+b); }
Изход
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Пример за функция без аргумент и с върната стойност
Пример 1
#include int sum(); void main() { int result; printf(' Going to calculate the sum of two numbers:'); result = sum(); printf('%d',result); } int sum() { int a,b; printf(' Enter two numbers'); scanf('%d %d',&a,&b); return a+b; }
Изход
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Пример 2: програма за изчисляване на площта на квадрата
връзки в java
#include int sum(); void main() { printf('Going to calculate the area of the square '); float area = square(); printf('The area of the square: %f ',area); } int square() { float side; printf('Enter the length of the side in meters: '); scanf('%f',&side); return side * side; }
Изход
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Пример за функция с аргумент и без връщана стойност
Пример 1
#include void sum(int, int); void main() { int a,b,result; printf(' Going to calculate the sum of two numbers:'); printf(' Enter two numbers:'); scanf('%d %d',&a,&b); sum(a,b); } void sum(int a, int b) { printf(' The sum is %d',a+b); }
Изход
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Пример 2: програма за изчисляване на средната стойност на пет числа.
#include void average(int, int, int, int, int); void main() { int a,b,c,d,e; printf(' Going to calculate the average of five numbers:'); printf(' Enter five numbers:'); scanf('%d %d %d %d %d',&a,&b,&c,&d,&e); average(a,b,c,d,e); } void average(int a, int b, int c, int d, int e) { float avg; avg = (a+b+c+d+e)/5; printf('The average of given five numbers : %f',avg); }
Изход
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Пример за функция с аргумент и с върната стойност
Пример 1
#include int sum(int, int); void main() { int a,b,result; printf(' Going to calculate the sum of two numbers:'); printf(' Enter two numbers:'); scanf('%d %d',&a,&b); result = sum(a,b); printf(' The sum is : %d',result); } int sum(int a, int b) { return a+b; }
Изход
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Пример 2: Програма за проверка дали дадено число е четно или нечетно
#include int even_odd(int); void main() { int n,flag=0; printf(' Going to check whether a number is even or odd'); printf(' Enter the number: '); scanf('%d',&n); flag = even_odd(n); if(flag == 0) { printf(' The number is odd'); } else { printf(' The number is even'); } } int even_odd(int n) { if(n%2 == 0) { return 1; } else { return 0; } }
Изход
Going to check whether a number is even or odd Enter the number: 100 The number is even
C библиотечни функции
Функциите на библиотеката са вградените функции в C, които са групирани и поставени на общо място, наречено библиотека. Такива функции се използват за извършване на някои специфични операции. Например printf е библиотечна функция, използвана за печат на конзолата. Функциите на библиотеката са създадени от дизайнерите на компилатори. Всички функции на стандартната библиотека на C са дефинирани в различните заглавни файлове, записани с разширението .h . Трябва да включим тези заглавни файлове в нашата програма, за да използваме библиотечните функции, дефинирани в такива заглавни файлове. Например, за да използваме библиотечните функции като printf/scanf, трябва да включим stdio.h в нашата програма, която е заглавен файл, който съдържа всички библиотечни функции по отношение на стандартния вход/изход.
Списъкът на най-често използваните заглавни файлове е даден в следващата таблица.
SN | Заглавен файл | Описание |
---|---|---|
1 | stdio.h | Това е стандартен входно/изходен заглавен файл. Той съдържа всички библиотечни функции по отношение на стандартния вход/изход. |
2 | conium.h | Това е входно/изходен заглавен файл на конзолата. |
3 | низ.h | Той съдържа всички свързани с низове библиотечни функции като gets(), puts() и т.н. |
4 | stdlib.h | Този заглавен файл съдържа всички общи библиотечни функции като malloc(), calloc(), exit() и т.н. |
5 | математика.ч | Този заглавен файл съдържа всички функции, свързани с математически операции, като sqrt(), pow() и т.н. |
6 | време.ч | Този заглавен файл съдържа всички функции, свързани с времето. |
7 | ctype.h | Този заглавен файл съдържа всички функции за обработка на знаци. |
8 | stdarg.h | Функциите с променливи аргументи са дефинирани в този заглавен файл. |
9 | сигнал.ч | Всички функции за обработка на сигнали са дефинирани в този заглавен файл. |
10 | setjmp.h | Този файл съдържа всички функции за прескачане. |
единадесет | locale.h | Този файл съдържа локални функции. |
12 | errno.h | Този файл съдържа функции за обработка на грешки. |
13 | assert.h | Този файл съдържа диагностични функции. |
Допълнителни подробности относно C функциите са предоставени по-долу:
Има няколко допълнителна информация, свързана с C функциите. Някои от тях са както следва:
Модулно програмиране: Способността да разделям а огромна програма на по-малки, по-управляеми модули е едно от основните предимства на използването на функции в C. Всяка функция може да съдържа определена задача или компонент от функционалност, което рационализира и изяснява цялостната структура на програмата. Тази модулна стратегия подобрява повторното използване на кода и улеснява поддръжката и отстраняването на грешки.
python списък инициализира
Повторно използване на кода: Като използвате функции, можете да създадете определен алгоритъм или част от логиката само веднъж и да ги използвате многократно във вашата програма. Можете просто да извикате функцията по всяко време, когато трябва да изпълните кода, като ви спестява необходимостта да го дублирате другаде. То не само ускорява развитието но също така гарантира последователност и намалява възможността за допускане на грешки.
Капсулиране и абстракция: Като прикриват спецификата на изпълнението на функционалността, функциите предлагат ниво на абстракция. Интерфейсът на прототип на функция може да бъде дефиниран в a заглавен файл , докато действителното изпълнение може да бъде предоставено в различен изходен файл. Други части на програмата могат да използват функцията, без да е необходимо да разбират как тя е вътрешно внедрена поради разделянето на интерфейса и изпълнението.
Лесна поддръжка на програмата: Една програма може да бъде разбрана и поддържана по-лесно, ако е разделена на по-малки функции. Възможността за присвояване на конкретна отговорност на всяка функция прави кода по-четлив и улеснява отстраняването на неизправности и отстраняването на грешки. Можете да се концентрирате върху необходимата функция, без да засягате други части на програмата, ако бъде открита грешка или е необходима модификация.
Подобрено сътрудничество: Функциите позволяват на разработчиците, работещи по един и същи проект, да си сътрудничат. Програмата може да бъде разделена на функции, така че няколко членове на екипа да могат да работят върху нея различни функции веднага. Разработчиците могат безпроблемно да интегрират работата си във функциите, ако интерфейсите са добре специфицирани, което подобрява производителността и насърчава ефективното развитие.
Предаване на параметъра: Можете да изпратите аргументи или данни към функция в C, за да може тя да ги обработи. Функцията може да извършва действия и да генерира резултати, използвайки тези входове. Можете да увеличите гъвкавостта и адаптивността на функциите чрез предаване на параметри, което ще увеличи цялостната гъвкавост на вашата програма.
Върнати стойности: Функциите могат да изпращат стойности обратно към кода, който ги е извикал, което позволява предаването на резултатите от изпълнението на функцията. Можете да използвате върнатата стойност в други области на програмата, след като извършите изчисления или манипулиране на данни във функцията. Върнати стойности са особено полезни, когато трябва да изчислите резултат или да установите условие в зависимост от изхода на функцията.
Заключение:
В заключение, функциите са от съществено значение за програмирането на C, защото те дават програма организация, повторна употреба и модулност . Разработчиците могат да избегнат многократното създаване на един и същи код, като разделят огромни програми на по-малки функции, правейки кода по-ефективен и по-лесен за поддръжка. Навсякъде в програмата може да се извика функция, осигурявайки гъвкавост и подобрявайки контролния поток.
The декларация, обаждане , и определение на функциите са само няколко от многото им характеристики. Компилаторът се информира от декларацията на функцията на име, аргументи , и тип връщане . Възможно е да извикате функция със или без параметри и със или без a върната стойност . Програмистите конструират дефинирани от потребителя функции, за да подобрят четливостта и оптимизацията на своя код, докато C библиотеката функционира като printf() и scanf() предоставяне на предварително зададени възможности.
Като цяло функциите са решаващи градивни елементи в програмирането на C, осигуряващи предимства, включително повишена организация, повторно използване на код и просто проследяване на огромни програми. Функционалните извиквания биха могли да добавят допълнителни разходи, но техните предимства надвишават минималния удар на производителността. Програмистите могат да пишат ефективни и модулни C програми чрез разбиране и използване на функции.