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

Зато се функције могу поделити на:
библиотечке или стандардне функције, које се налазе у стандардним библиотекама. То су функције попут
scanf()
,printf()
,getchar()
,abs()
,malloc()
, икорисничке функције, које пише сам програмер.
Друга подела се односи на њихову функционалност. Ту је подела извршена на:
функције које враћају резултат или вредност позивајућој функцији, и
функције које не враћају вредност позивајућој функцији.
Позивајућа функција је она у којој се позива посматрана функција. Она може бити
главна функција 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, али она не сме да има аргументе.