logo

C функции

В c можем да разделим голяма програма на основни градивни елементи, известни като функция. Функцията съдържа набор от програмни изрази, затворени от {}. Една функция може да бъде извикана многократно, за да осигури многократна употреба и модулност на C програмата. С други думи, можем да кажем, че колекцията от функции създава програма. Функцията е известна още като процедура или подпрограма на други езици за програмиране.

Предимство на функциите в C

Има следните предимства на C функциите.

  • Използвайки функции, можем да избегнем пренаписването на същата логика/код отново и отново в програма.
  • Можем да извикваме C функции произволен брой пъти в програма и от всяко място в програмата.
  • Можем лесно да проследим голяма C програма, когато е разделена на множество функции.
  • Повторната употреба е основното постижение на C функциите.
  • Обаче извикването на функция винаги е излишно в C програма.

Функционални аспекти

Има три аспекта на C функция.

    Декларация на функцияФункцията трябва да бъде декларирана глобално в c програма, за да каже на компилатора за името на функцията, параметрите на функцията и типа на връщане.
    Извикване на функцияФункцията може да бъде извикана от всяка точка на програмата. Списъкът с параметри не трябва да се различава при извикване на функция и декларация на функция. Трябва да предадем същия брой функции, както е деклариран в декларацията на функцията.Дефиниция на функциятаТой съдържа действителните оператори, които трябва да бъдат изпълнени. Това е най-важният аспект, към който идва контролът, когато се извика функцията. Тук трябва да отбележим, че само една стойност може да бъде върната от функцията.
SNC функционални аспектиСинтаксис
1Декларация на функцияreturn_type име_на_функция (списък с аргументи);
2Извикване на функцияиме_на_функция (списък_аргументи)
3Дефиниция на функциятаreturn_type име_на_функция (списък с аргументи) {тяло на функция;}

Синтаксисът за създаване на функция на език c е даден по-долу:

 return_type function_name(data_type parameter...){ //code to be executed } 

Видове функции

Има два типа функции в програмирането на C:

    Функции на библиотеката:са функциите, които са декларирани в C заглавните файлове, като scanf(), printf(), gets(), puts(), ceil(), floor() и т.н.Дефинирани от потребителя функции:са функциите, които са създадени от C програмиста, така че той/тя да може да го използва много пъти. Намалява сложността на голяма програма и оптимизира кода.
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Заглавен файлОписание
1stdio.hТова е стандартен входно/изходен заглавен файл. Той съдържа всички библиотечни функции по отношение на стандартния вход/изход.
2conium.hТова е входно/изходен заглавен файл на конзолата.
3низ.hТой съдържа всички свързани с низове библиотечни функции като gets(), puts() и т.н.
4stdlib.hТози заглавен файл съдържа всички общи библиотечни функции като malloc(), calloc(), exit() и т.н.
5математика.чТози заглавен файл съдържа всички функции, свързани с математически операции, като sqrt(), pow() и т.н.
6време.чТози заглавен файл съдържа всички функции, свързани с времето.
7ctype.hТози заглавен файл съдържа всички функции за обработка на знаци.
8stdarg.hФункциите с променливи аргументи са дефинирани в този заглавен файл.
9сигнал.чВсички функции за обработка на сигнали са дефинирани в този заглавен файл.
10setjmp.hТози файл съдържа всички функции за прескачане.
единадесетlocale.hТози файл съдържа локални функции.
12errno.hТози файл съдържа функции за обработка на грешки.
13assert.hТози файл съдържа диагностични функции.

Допълнителни подробности относно C функциите са предоставени по-долу:

Има няколко допълнителна информация, свързана с C функциите. Някои от тях са както следва:

Модулно програмиране: Способността да разделям а огромна програма на по-малки, по-управляеми модули е едно от основните предимства на използването на функции в C. Всяка функция може да съдържа определена задача или компонент от функционалност, което рационализира и изяснява цялостната структура на програмата. Тази модулна стратегия подобрява повторното използване на кода и улеснява поддръжката и отстраняването на грешки.

python списък инициализира

Повторно използване на кода: Като използвате функции, можете да създадете определен алгоритъм или част от логиката само веднъж и да ги използвате многократно във вашата програма. Можете просто да извикате функцията по всяко време, когато трябва да изпълните кода, като ви спестява необходимостта да го дублирате другаде. То не само ускорява развитието но също така гарантира последователност и намалява възможността за допускане на грешки.

Капсулиране и абстракция: Като прикриват спецификата на изпълнението на функционалността, функциите предлагат ниво на абстракция. Интерфейсът на прототип на функция може да бъде дефиниран в a заглавен файл , докато действителното изпълнение може да бъде предоставено в различен изходен файл. Други части на програмата могат да използват функцията, без да е необходимо да разбират как тя е вътрешно внедрена поради разделянето на интерфейса и изпълнението.

Лесна поддръжка на програмата: Една програма може да бъде разбрана и поддържана по-лесно, ако е разделена на по-малки функции. Възможността за присвояване на конкретна отговорност на всяка функция прави кода по-четлив и улеснява отстраняването на неизправности и отстраняването на грешки. Можете да се концентрирате върху необходимата функция, без да засягате други части на програмата, ако бъде открита грешка или е необходима модификация.

Подобрено сътрудничество: Функциите позволяват на разработчиците, работещи по един и същи проект, да си сътрудничат. Програмата може да бъде разделена на функции, така че няколко членове на екипа да могат да работят върху нея различни функции веднага. Разработчиците могат безпроблемно да интегрират работата си във функциите, ако интерфейсите са добре специфицирани, което подобрява производителността и насърчава ефективното развитие.

Предаване на параметъра: Можете да изпратите аргументи или данни към функция в C, за да може тя да ги обработи. Функцията може да извършва действия и да генерира резултати, използвайки тези входове. Можете да увеличите гъвкавостта и адаптивността на функциите чрез предаване на параметри, което ще увеличи цялостната гъвкавост на вашата програма.

Върнати стойности: Функциите могат да изпращат стойности обратно към кода, който ги е извикал, което позволява предаването на резултатите от изпълнението на функцията. Можете да използвате върнатата стойност в други области на програмата, след като извършите изчисления или манипулиране на данни във функцията. Върнати стойности са особено полезни, когато трябва да изчислите резултат или да установите условие в зависимост от изхода на функцията.

Заключение:

В заключение, функциите са от съществено значение за програмирането на C, защото те дават програма организация, повторна употреба и модулност . Разработчиците могат да избегнат многократното създаване на един и същи код, като разделят огромни програми на по-малки функции, правейки кода по-ефективен и по-лесен за поддръжка. Навсякъде в програмата може да се извика функция, осигурявайки гъвкавост и подобрявайки контролния поток.

The декларация, обаждане , и определение на функциите са само няколко от многото им характеристики. Компилаторът се информира от декларацията на функцията на име, аргументи , и тип връщане . Възможно е да извикате функция със или без параметри и със или без a върната стойност . Програмистите конструират дефинирани от потребителя функции, за да подобрят четливостта и оптимизацията на своя код, докато C библиотеката функционира като printf() и scanf() предоставяне на предварително зададени възможности.

Като цяло функциите са решаващи градивни елементи в програмирането на C, осигуряващи предимства, включително повишена организация, повторно използване на код и просто проследяване на огромни програми. Функционалните извиквания биха могли да добавят допълнителни разходи, но техните предимства надвишават минималния удар на производителността. Програмистите могат да пишат ефективни и модулни C програми чрез разбиране и използване на функции.