Ц Кориснички дефинисане функције

У овом упутству научићете да креирате функције које дефинишу корисници у програмирању на Ц помоћу примера.

Функција је блок кода који извршава одређени задатак.

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

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

  • 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 ) 

Прототип функције

Прототип функције је једноставно декларација функције која специфицира име функције, параметре и тип повратка. Не садржи тело функције.

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

Синтакса прототипа функције

 ретурнТипе фунцтионНаме (типе1 аргумент1, типе2 аргумент2,…);

У горњем примеру int addNumbers(int a, int b);је прототип функције који компајлеру пружа следеће информације:

  1. назив функције је addNumbers()
  2. повратни тип функције је int
  3. два аргумента типа intсе прослеђују функцији

Прототип функције није потребан ако је кориснички дефинисана функција дефинисана пре main()функције.

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

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

Синтакса позива функције

 фунцтионНаме (аргумент1, аргумент2,…);

У горњем примеру, позив функције врши се помоћу addNumbers(n1, n2);израза унутар main()функције.

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

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

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

 ретурнТипе фунцтионНаме (типе1 аргумент1, типе2 аргумент2,…) (// тело функције) 

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

Прослеђивање аргумената функцији

У програмирању, аргумент се односи на променљиву прослеђену функцији. У горњем примеру, две променљиве н1 и н2 се преносе током позива функције.

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

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

Ако је н1 типа цхар, а такође треба да буде типа цхар. Ако је н2 флоат типа, променљива б такође треба да буде флоат типа.

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

Изјава о повратку

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

У горњем примеру, вредност променљиве резултата се враћа главној функцији. Променљивој суме у main()функцији додељује се ова вредност.

Синтакса повратне изјаве

 повратак (израз); 

На пример,

ретурн а; повратак (а + б);

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

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

Занимљиви Чланци...