Подела функција

До сада си небројено пута користио поједине функције, попут функција scanf и рrintf. Без ових функција не може се замислити иоле озбиљнији програм у програмском језику С. Оне се налазе у заглављу stdio.h које укључујеш на почетку програма. Шта то заправо значи? Приликом израде развојног окружења креирају се многе функције које се затим позивају у функцијама или главном програму.

На исти начин, ако си користио математичке функције, морао си да укључиш заглавље math.h. Програмирајући, користићеш и друге библиотеке функција, попут stdlib.h, conio.h и многа друга.

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

Положај датотеке stdio.h развојног окружења Visual Studio 2019:

../_images/Picture210.png

Зато се функције могу поделити на:

  1. библиотечке или стандардне функције, које се налазе у стандардним библиотекама. То су функције попут scanf(), printf(), getchar(), abs(), malloc(), и

  2. корисничке функције, које пише сам програмер.

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

  • функције које враћају резултат или вредност позивајућој функцији, и

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

Позивајућа функција је она у којој се позива посматрана функција. Она може бити главна функција main(), што је најчешћи случај, али и било која друга функција. Пример функције која враћа вредност:

int abs(int x)
{
   if (x < 0)
   x = -x;
   return x;
}

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

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

void Pozdrav()
{
    printf ("Ova f-ja ne vraca vrednost!");
}

Ова функција не враћа вредност и она је типа void. Навели смо да она може да садржи наредбу return, али она не сме да има аргументе.