Све што треба да знате о функцијама у Ц-у?



Овај чланак ће вам представити једноставан, али врло темељни и важан концепт, а то је Функције у Ц, а затим ће га пратити демонстрацијом.

Овај чланак ће вам представити једноставан, али врло важан и важан концепт који је Функције у Ц и пратите га демонстрацијом. Следећи смерници ће бити обрађени у овом чланку,

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





Кренимо од најосновнијег питања.

Шта су функције у Ц-у?

Функције су исте у Ц као и било који други програмски језик. То је скуп кодова повезаних за обављање одређеног задатка. Скуп кода који ће се извршити наведен је у витичастим заградама, тј. „{}“.



Пре него што научимо како да напишемо функцију на Ц, прво да схватимо које су предности.

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

Предности функција су заједничке свим програмским језицима.
Главна идеја која стоји иза функције је смањење редунданције кода. Претпоставимо да имате функционалност коју треба извести више пута у програму, па уместо да је записујете више пута, можете створити функцију за тај задатак и позвати је колико год пута желите. Још једна скривена предност је, ако се логика ваше функционалности накнадно промени, не морате да је мењате на више места. Само морате да промените код на једном месту (тј. У функцији) и то би се одразило у целом програму.

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



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

Кретање даље са типовима функције Ц.

Типови функција у Ц.

Постоје две врсте функција:
Функције библиотеке
Кориснички дефинисане функције

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

Сада када знамо предности стварања функције, хајде да схватимо како се функција декларише у Ц.

Изјава и дефиниција функције

Изјава о функцији:

Синтакса декларације функције:

ретурн_типе име-функције (дата_типе арг1, дата_типе арг2) инт адд (инт к, инт и) // декларација функције

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

У декларацији функције, навођење имена параметра није обавезно, али је обавезно навођење њихових типова података.

инт адд (инт, инт) // декларација функције

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

Дефиниција функције

 Слика- Функције у Ц- Едурека
инт додај (инт, инт) // декларација функције ретурн_типе функција_име (параметри) {Тело функције}

Као што је приказано на горњој слици, дефиниција функције састоји се од два дела, тј. Заглавља функције и тела функције

тип података датума скл сервера

Заглавље функције: заглавље функције је исто што и декларација функције без зареза. Заглавље функције садржи име функције, параметар и тип повратка.

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

  • Назив функције: Ово је назив функције помоћу које можемо позвати функцију када и где је то потребно.

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

Тело функције: Тело функције је скуп израза који извршава одређени задатак. Дефинише шта функција ради.

Пример:

инт додај (инт к, инт и) {инт сум = к + и ретурн (збир)}

Препоручује се декларација функције пре него што је дефинишемо и користимо. У Ц, можемо декларисати и дефинисати функцију на истом месту.

Пример:

#инцлуде инт адд (инт, инт) // декларација функције // дефиниција функције инт адд (инт к, инт и) // заглавље функције {// тело функције инт сум = к + и ретурн (сум)} // главна функција инт маин () {инт сум = додај (23, 31) принтф ('% д', сум) ретурн 0}

Као што видимо у горњем примеру да функцију позивамо помоћу израза инт сум = адд (23, 31). Враћена вредност из функције чува се у променљивој збира.

Пре него што кренемо напред, постоји још један важан концепт који треба разумети о параменту. Постоје две врсте параметара:

Стварни параметар : Они параметри који се прослеђују функцијама током њиховог позива познати су као стварни параметри. На пример, 23 и 31 у горњем примеру су стварни параметри.

Формални параметар : Они параметри које функције примају познати су као формални параметри. На пример, к & и у горњем примеру су формални параметри.

Кренимо брзо и разумемо различите начине позивања функције у Ц.

Позивање функције

Постоје два начина на која можемо позвати функцију:

  • Позив по вредности
  • Позовите путем референце

Позив по вредности

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

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

Пример:

#инцлуде воид Цалл_Би_Валуе (инт нум1) {нум1 = 42 принтф ('нИнсиде Фунцтион, Нумбер ис% д', нум1)} инт маин () {инт нум нум = 24 принтф ('нБефоре Фунцтион, Нумбер ис% д', нум ) Цалл_Би_Валуе (нум) принтф ('нНакон функције, број је% дн', нум) ретурн 0}

Оутпут

У горњем примеру, пре позива функцијом вредности, вредност нум је 24. Затим, када једном позовемо функцију и проследимо вредност, и променимо је унутар функције, она постаје 42. Када се вратимо и поново одштампамо вредност од броја у главној функцији, постаје 24.

Позовите путем референце

када ово користити у јави

У позиву путем референце, меморијска адреса стварног параметра се преноси функцији као аргумент. Овде се вредност стварног параметра може променити формалним параметром.

Иста адреса меморије користи се и за стварни и за формални параметар. Дакле, ако се вредност формалног параметра модификује, то се одражава и стварним параметром.

У Ц користимо показиваче за примену позива референцом. Као што можете видети у доњем примеру, функција Цалл_Би_Референце очекује показивач на цео број.

Сада ће ова променљива нум1 чувати меморијску адресу стварног параметра. Дакле, да бисмо исписали вредност која је сачувана у меморијској адреси означеној бројем нум1, морамо да користимо оператор преусмеравања тј. *. Дакле, вредност * нум1 је 42.

Оператор адресе & користи се за добијање адресе променљиве било ког типа података. Дакле, у изјави позива функције ‘Цалл_Би_Референце (& нум)’, адреса нум се предаје тако да нум може да се модификује помоћу своје адресе.

Пример

#инцлуде // дефиниција функције воид Цалл_Би_Референце (инт * нум1) {* нум1 = 42 принтф ('нИнсиде Фунцтион, Нумбер ис% д', * нум1)} // Маин Фунцтион инт маин () {инт нум нум = 24 принтф ( 'нПре Фунцтион, Нумбер ис% д', нум) Цалл_Би_Референце (& нум) принтф ('нНакон функције, број је% дн', нум) ретурн 0}

Оутпут

У овом примеру, вредност нум је у почетку 24, унутар главне функције. Једном када је прослеђена функцији Цалл_Би_Референце и вредност је модификована формалним параметром, промењена је и за стварни параметар. Због тога, када исписујемо вредност нум након функције, она исписује 42.

Кретање са типовима кориснички дефинисаних функција у Ц.

Врсте кориснички дефинисаних Функција у Ц.

Постоје разне врсте кориснички дефинисаних функција засноване на типу повратка и прослеђеним аргументима.

Кретање даље без прослеђених аргумената и без враћене вредности

1.Нема прослеђених аргумената и нема повратне вредности

Синтакса:

декларација функције:

воид фунцтион () функција позив: фунцтион () дефиниција функције: воид фунцтион () {наредбе}

Пример

алгоритам сортирања се може користити за уређивање скупа ________ по редоследу ________.
#инцлуде воид адд () воид адд () {инт к = 20 инт и = 30 инт сум = к + и принтф ('сум% д', сум)} инт маин () {адд () ретурн 0}

Кретање даље без прослеђених аргумената, већ са повратном вредношћу

2 Нису прослеђени аргументи, већ повратна вредност

Синтакса:

декларација функције:

инт функција () позив функције: функција () дефиниција функције: инт функција () {изрази враћају а}

Пример:

#инцлуде инт адд () инт адд () {инт к = 20 инт и = 30 инт сум = к + и ретурн (сум)} инт маин () {инт сум сум = адд () принтф ('сум% д', сума) повратак 0}

Настављамо са прослеђеним аргументима, али нема повратне вредности

3 Аргумент је прослеђен, али нема повратне вредности

Синтакса:

декларација функције:

воид функција (инт) позив функције: функција (а) дефиниција функције: воид функција (инт а) {наредбе}

Пример:

#инцлуде воид адд (инт, инт) воид адд (инт к, инт и) {инт сум = к + и ретурн (сум)} инт маин () {адд (23, 31) ретурн 0}

Настављамо са прослеђеним аргументом и повратном вредношћу

4 Аргумент прослеђен и повратна вредност

Синтакса:

декларација функције:

инт функција (инт) позив функције: функција (а) дефиниција функције: инт функција (инт а) {изрази враћају а}

Пример

#инцлуде инт адд (инт, инт) инт адд (инт к, инт и) {инт сум = к + и ретурн (сум)} инт маин () {инт сум = адд (23, 31) принтф ('% д' , сум) ретурн 0}

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

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

Функције библиотеке су функције на језику Ц које су унапред дефинисане и присутне су подразумевано. Само морате да укључите одређену заглавну датотеку у програм и можете да користите функције дефинисане у тој заглавној датотеци. Свака датотека заглавља пружа одређену врсту функционалности. Додатак датотеке заглавља је .х.

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

Следи листа заглавних датотека.

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

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

Тако смо дошли до краја овог чланка о „Функцијама у Ц“. Ако желите да сазнате више, погледајте , поуздана компанија за учење на мрежи. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА осмишљен је тако да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помените у одељку за коментаре на овом блогу и јавићемо вам се што је пре могуће.