logo

Ц Функције

У ц-у можемо поделити велики програм на основне грађевне блокове познате као функција. Функција садржи скуп програмских израза затворених са {}. Функција се може позвати више пута како би се омогућила поновна употреба и модуларност Ц програму. Другим речима, можемо рећи да збирка функција ствара програм. Функција је такође позната као процедура или потпрограм у другим програмским језицима.

Предност функција у Ц

Постоје следеће предности Ц функција.

  • Коришћењем функција можемо избећи поновно и изнова поновно писање исте логике/кода у програму.
  • Ц функције можемо позвати било који број пута у програму и са било ког места у програму.
  • Можемо лако пратити велики Ц програм када је подељен на више функција.
  • Поновна употреба је главно достигнуће Ц функција.
  • Међутим, позивање функције је увек прекомерно у Ц програму.

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

Постоје три аспекта функције Ц.

    Декларација функцијеФункција мора бити декларисана глобално у ц програму да би се компајлеру обавестила о имену функције, параметрима функције и типу повратка.
    Позив функцијеФункција се може позвати са било ког места у програму. Листа параметара не сме да се разликује по позиву функције и декларацији функције. Морамо проследити исти број функција као што је декларисано у декларацији функције.Дефиниција функцијеСадржи стварне наредбе које треба извршити. То је најважнији аспект на који долази контрола када се функција позове. Овде морамо приметити да се само једна вредност може вратити из функције.
СНАспекти Ц функцијеСинтакса
1Декларација функцијеретурн_типе фунцтион_наме (лист аргумената);
2Позив функцијефунцтион_наме (аргумент_лист)
3Дефиниција функцијеретурн_типе фунцтион_наме (листа аргумената) {тело функције;}

Синтакса креирања функције у ц језику је дата у наставку:

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

Врсте функција

Постоје две врсте функција у Ц програмирању:

    Функције библиотеке:су функције које су декларисане у Ц датотекама заглавља као што су сцанф(), принтф(), гетс(), путс(), цеил(), флоор() итд.Кориснички дефинисане функције:су функције које креира Ц програмер, тако да он/она може да га користи много пута. Смањује сложеност великог програма и оптимизује код.
Ц Функција

Повратна вредност

Ц функција може или не мора да врати вредност из функције. Ако не морате да враћате ниједну вредност из функције, користите воид за тип враћања.

Хајде да видимо једноставан пример функције Ц која не враћа никакву вредност из функције.

Пример без повратне вредности:

 void hello(){ printf('hello c'); } 

Ако желите да вратите било коју вредност из функције, потребно је да користите било који тип података као што су инт, лонг, цхар, итд. Тип враћања зависи од вредности која ће бити враћена из функције.

орацле скл није једнак

Хајде да видимо једноставан пример функције Ц која враћа инт вредност из функције.

Пример са повратном вредношћу:

 int get(){ return 10; } 

У горњем примеру морамо да вратимо 10 као вредност, тако да је тип враћања инт. Ако желите да вратите вредност са покретним зарезом (нпр. 10.2, 3.1, 54.5, итд.), потребно је да користите флоат као тип враћања методе.

 float get(){ return 10.2; } 

Сада морате позвати функцију да бисте добили вредност функције.

Различити аспекти позивања функција

Функција може или не мора прихватити било који аргумент. Може или не мора да врати било коју вредност. На основу ових чињеница, постоје четири различита аспекта позива функција.

поштар
  • функција без аргумената и без повратне вредности
  • функција без аргумената и са повратном вредношћу
  • функција са аргументима и без повратне вредности
  • функција са аргументима и са повратном вредношћу

Пример за функцију без аргумента и повратне вредности

Пример 1

 #include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); } 

Излаз

 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: програм за израчунавање површине квадрата

јава карактер у стринг
 #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 

Функције Ц библиотеке

Функције библиотеке су уграђене функције у Ц које су груписане и смештене на заједничко место које се зове библиотека. Такве функције се користе за обављање неких специфичних операција. На пример, принтф је функција библиотеке која се користи за штампање на конзоли. Функције библиотеке креирају дизајнери компајлера. Све функције стандардне библиотеке Ц дефинисане су унутар различитих датотека заглавља сачуваних са екстензијом . Морамо да укључимо ове датотеке заглавља у наш програм да бисмо користили функције библиотеке дефинисане у таквим датотекама заглавља. На пример, да бисмо користили библиотечке функције као што је принтф/сцанф, морамо да укључимо стдио.х у наш програм који је датотека заглавља која садржи све функције библиотеке у вези са стандардним улазом/излазом.

Листа најчешће коришћених датотека заглавља дата је у следећој табели.

СНДатотека заглављаОпис
1стдио.хОво је стандардни улазно/излазни фајл заглавља. Садржи све функције библиотеке у вези са стандардним улазом/излазом.
2конијум.хОво је улазно/излазна датотека заглавља конзоле.
3стринг.хСадржи све функције библиотеке повезане са стринговима као што су гетс(), путс(), итд.
4стдлиб.хОва датотека заглавља садржи све опште функције библиотеке као што су маллоц(), цаллоц(), екит(), итд.
5матх.хОва датотека заглавља садржи све функције везане за математичке операције као што су скрт(), пов() итд.
6време.хОва датотека заглавља садржи све функције везане за време.
7цтипе.хОва датотека заглавља садржи све функције руковања знаковима.
8стдарг.хФункције променљивих аргумената су дефинисане у овој датотеци заглавља.
9сигнал.хСве функције руковања сигналом су дефинисане у овој датотеци заглавља.
10сетјмп.хОва датотека садржи све функције скока.
Једанаестлоцале.хОва датотека садржи функције локализације.
12еррно.хОва датотека садржи функције за обраду грешака.
13тврдити.хОва датотека садржи дијагностичке функције.

Додатни детаљи у вези са Ц функцијама су дати у наставку:

Постоји неколико додатних информација у вези са Ц функцијама. Неки од њих су следећи:

Модуларно програмирање: Способност подела а огроман програм у мање модуле којима је лакше управљати је једна од главних предности коришћења функција у Ц-у. Свака функција може да садржи одређени посао или компоненту функционалности, што поједностављује и појашњава целокупну структуру програма. Ова модуларна стратегија побољшава поновну употребу кода и олакшава одржавање и отклањање грешака.

јава енд

Поновна употреба кода: Користећи функције, можете креирати одређени алгоритам или део логике само једном и користити га више пута у свом програму. Можете једноставно позвати функцију кад год треба да покренете код, чиме се штедите од потребе да га дуплирате на другом месту. То не само убрзава развој али такође обезбеђује доследност и смањује могућност прављења грешака.

Енкапсулација и апстракција: Замагљујући специфичности имплементације функционалности, функције нуде ниво апстракције. Интерфејс прототипа функције може се дефинисати у а датотека заглавља , док се стварна имплементација може обезбедити у другој изворној датотеци. Остали делови програма могу да користе функцију без потребе да разумеју како се интерно имплементира због раздвајања интерфејса и имплементације.

Лако одржавање програма: Програм се може лакше разумети и одржавати ако је подељен на мање функције. Могућност додељивања одређене одговорности свакој функцији чини код читљивијим и олакшава решавање проблема и отклањање грешака. Можете се концентрисати на потребну функцију без утицаја на друге делове програма ако се пронађе грешка или је потребна измена.

Побољшана сарадња: Функције омогућавају програмерима који раде на истом пројекту да сарађују. Програм се може поделити на функције тако да више чланова тима може да ради на њему различите функције одмах. Програмери могу глатко да интегришу свој рад у функције ако су интерфејси добро специфицирани, што побољшава продуктивност и промовише ефикасан развој.

Преношење параметра: Можете послати аргументе или податке функцији у Ц-у како би она могла да их обради. Функција може да спроводи акције и генерише резултате користећи ове улазе. Можете повећати флексибилност и прилагодљивост функција преношењем параметара, што ће повећати укупну свестраност вашег програма.

Повратне вредности: Функције могу да шаљу вредности назад у код који их је позвао, омогућавајући комуникацију резултата извршења функције. Можете да користите враћену вредност у другим областима програма након обављања прорачуна или манипулације подацима унутар функције. Повратне вредности су посебно корисни када треба да израчунате резултат или успоставите услов у зависности од излаза функције.

Закључак:

У закључку, функције су неопходне за Ц програмирање јер дају програм организацију, поновну употребу и модуларност . Програмери могу да избегну стално креирање истог кода тако што ће разбити огромне програме на мање функције, чинећи код ефикаснијим и једноставнијим за одржавање. Било где у програму може позвати функцију, пружајући флексибилност и побољшавајући ток контроле.

Тхе декларација, позив , и дефиниција функција су само неке од њихових бројних карактеристика. Преводилац је обавештен декларацијом функције име, аргументи , и тип повратка . Могуће је позвати функцију са или без параметрима и са или без а повратна вредност . Програмери конструишу кориснички дефинисане функције да би побољшали читљивост и оптимизацију свог кода, док Ц библиотека функционише као принтф() и сцанф() пружају унапред постављене могућности.

Све у свему, функције су кључни градивни блокови у Ц програмирању, пружајући предности укључујући повећану организацију, поновну употребу кода и једноставно праћење огромних програма. Позиви функција би могли да додају неке додатне трошкове, али њихове предности надмашују минималне перформансе. Програмери могу писати ефикасне и модуларне Ц програме разумевањем и употребом функција.