Лекция мазмұны: Cи тілінде барлық ішкі программалар функция ретінде қарастырылады. Әдетте программалар бірнеше шағын функциялардан тұрады. Функция дегеніміз – белгілі бір операциялар тобын атқаратын программа блогы. Функцияға мәліметтер береміз де, одан белгілі бір нәтижелер аламыз. Функцияның ішкі әрекеті программаның басқа бөліктеріне қатыссыз орындалады.
Програмада кем дегенде, бір функция болады және программадағы бір функцияның аты main болуы тиіс. Программаның орындалуы осы main функциясынан басталады. main функциясының орындалуы барысында басқа функциялар шақырылады, ал олар одан да басқа функцияларды шақыруы мүмкін.
Бір функция жұмыс істеп тұрғанда, екінші функцияны орындау керек болса, онда бірінші функция жұмысын тоқтата тұрады да, екінші функция жұмысқа кіріседі. Ол өз жұмысын аяқтап, return сөзін кезіктіргенде ғана қайтадан бірінші программа өзінің тоқтаған жерінен ары қарай іске кіріседі. Функция атынан соң міндетті түрде жақшалар ( ) болуы тиіс.
Әрбір функция сипатталып анықталуы тиіс. Функцияның типі және ол арқылы есептелетін мәннің типі бірдей болуы керек. Функция типі көрсетілмесе, келісім бойынша, ол int типтес болып саналады. Енді функцияның сипатталуын қарастырайық. Функцияны сипаттағанда екі түрлі форматты немесе екі стильді қолдануға болады.
Функция мынадай жалпы түрде сипатталады:
[<функция типі>] <функция аты> ([<формальды параметрлер спецификациясы>])
<функция тұлғасы>;
мұндағы
[<функция типі>] – функция есептейтін нәтиже типі;
<функцияның аты> – функция идентификаторы, яғни аты;
<формальды параметрлер спецификациясы> – бұл болмауы да мүмкін немесе әрбір параметр спецификациясы:
<типі> <параметр аты> – формальды параметрлердің типтерін және идентификаторларын анықтайды;
<функция тұлғасы> – орындалатын операторлар тізбегі және оның ішінде локальді айнымалының сипатталуы болуы мүмкін.
Функцияны шақыру үшін функцияның аты және жақшада нақты аргументтері көрсетіледі. Функция өз жұмысын аяқтағаннан кейін есептелген нәтижені return операторы арқылы қайтарады. Бұл оператордың жалпы түрі мынадай: