<функция тұлғасы> – орындалатын операторлар тізбегі және оның ішінде локальді айнымалының сипатталуы болуы мүмкін.
Функцияны компилятор дұрыс түсінуі үшін оны шақырып пайдаланғанға дейін функцияның қысқаша сипаттамасы берілуі тиіс, яғни функция программаның соңғы жағында сипатталса, программа басында оны былайша хабарлап кету керек.
типі функция_аты (параметрлер_спецификациясы);
яғни оның прототипі – алдын ала қысқаша көрсетілуі тиіс. Прототипте формальды параметрлер атын жазбаса да болады, мысалы:
double f(int n, float x); немесе
double f(int, float);
Сонымен, функцияны хабарлау оның прототипін – аты және параметрлері саны мен типін программалық файлдың алдында жариялау болып табылады. Функцияны осылайша хабарлауды былай да көрсету-ге болады:
<нәтиже_типі><функция_аты>(<типі> <айнымалы>
,…, <типі> <айнымалы>);
Егер жай жақша ішінде жазылатын айнымалылар идентификаторлары көрсетілмесе, онда компилятор оларға арнап компьютер жадында тек орын қалдыра-ды. Мұнда функция тұлғасы жайлы сөз болмайды.
Мысалы, fun функциясын оның параметрлерінің типі арқы-лы хабарлау былай жазылады:
float fun(int, float, int, int);
Функция прототипі компиляторға негізгі программадан соң, оның толық мәтіні берілетінін хабарлап отыр.
Функцияны толық түрде анықтау, яғни оның нақты мәтінін жазу былай көрсетіледі:
<нәтиже_типі> <функция_аты>
(параметрлер тізімі)
{
Функция коды
}
Нәтиже типі функцияның программаға return операторы арқылы қайтаратын мәнінің типін анықтайды. Егер функ-ция типі көрсетілмесе, онда алдын ала (үнсіз) келісім бойынша ол int болып саналады.
Параметрлер тізімі функция аргументтерінің атаулары мен типтерінің үтір арқылы бөлінген тіркестерінен тұрады. Фун-кцияның параметрлері болмауы да мүмкін, ондайда функция атынан соң, олардың орнына міндетті түрде құр жай жақша-лар жазылады, мысалы,