// PF типін int типті бір параметрі бар // функцияға нұсқауыш ретінде сипаттау: typedef void (*PF)(int); // Нұсқауыштар жиымын сипаттау жəне инициалдау; PF menu[] = {&new, &open, &save}; menu[l](10); // open функциясын шақыру Бұл жерде
new, open жəне
save – алдын ала жариялануы тиіс функциялардың атаулары.
Функцияларға нұсқауыштар ішкі программаға басқа типтегі параметрлер
сияқты беріледі:
#include typedef void (*PF)(int); void fl (PF pf){ // fl функциясы параметр ретінде // PF типіндегі нұсқауышты алады pf(5); // нұсқауыш арқылы берілген // функцияны шақыру } void f(int i){ cout << i; } int main(){ f1(f); return 0; } Нұсқауыштың типі мен осы нұсқауыш арқылы шақырылатын функцияның
типі бір-бірімен дəлме-дəл сəйкес келуі керек.
Келісім бойынша берілген мəндері бар параметрлер Функцияны шақыруды жеңілдету үшін оның тақырыбында параметрлердің
келісім бойынша берілген мəндерін көрсетуге болады. Олар параметрлер
тізімнің соңында болуы тиіс жəне функцияны шақыру кезінде олардың жа-
зылуы міндетті емес. Егер шақыру кезінде параметр көрсетілмесе, одан кейін
орналасқан барлық параметрлер де жазылмайды. Параметрлердің келісім
бойынша берілген мəндері ретінде тұрақтылар, ауқымды айнымалылар жəне
өрнектер қолданылуы мүмкін:
84
int f(int a, int b = 0); void f1(int, int = 100, char* = 0); /* мұндағы * жəне = таңбалары арасындағы бос орынға назар аударыңыз (оның қатысуынсыз бұл күрделі меншіктеу операциясы *= болып шығатын еді) */