Kitob uchta qismdan iborat. "Strukturali dasturlash", "Obyektli-yo’nalishli dasturlash", "Standart kutubxonalar"


Funksiyalar nomlarini parametrlar sifatida uzatish



Download 333,2 Kb.
bet42/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   38   39   40   41   42   43   44   45   ...   90
Bog'liq
C majmua

Funksiyalar nomlarini parametrlar sifatida uzatish

Funksiyani unga ko'rsatgich orqali chaqirish mimkin. Buning uchun mos tipdagi ko'rsatgich e'lon qilinadi va unga adresni olish amali yordamida funksiya adresi beriladi:


void f(int a ) { /* … */ } // funksiya ta'rifi


void (*pf)(int); // funksiyaga ko'rsatgich
. . .
pf = &f; // ko'rsatgichga funksiya adresi beriladi
// pf = f; deb yozish mumkin
pf(10); // f funksiya pf ko'rsatgich orqali chaqiriladi
// (*pf)(10) ) deb yozish mumkin

Dasturni oson o'zgaruvchan qilish uchun funksiyalarga ko'rsatgichlarni tavsiflashda tiplarni qayta nomlashdan foydalaniladi (typedef). Funksiyaga ko'rsatgichlar massivlarini e'lon qilish mumkin (bu foydali bo'lishi mumkin. Masalan, menyuni amalga oshirishda):


// PF tipli ko'rsatgich sifatida tavsiflash


// int tipidagi bir parametrli funksiya:
typedef void (*PF)(int);
// Описание и инициализация массива указателей;
PF menu[] = {&new, &open, &save};
menu[1](10); // open funksiyani chaqirish

Bu yerda new, open va save – oldin e'lon qilinadigan funksiyalar nomlari. Funksiyalarga ko'rsatgichlar boshqa tiplar parametrlari kabi qism dasturga uzatiladi:


#include


typedef void (*PF)(int);
void f1(PF pf){ // f1 funksiya parametr sifatida PF tipidagi ko'rsatgich oladi
pf(5); // ko'rsatgich orqali uzatilgan funksiyani chaqirish
}
void f(int i) {cout << i;}
int main(){
f1(f);
return 0;
}

Ko'rsatgich tipi va bu ko'rsatgich yordamida chaqiriladigan funksiya tipi bilan aniq ustma-ust tushishi lozim.




Jimlik bo'yicha qiymatlarga ega parametrlar

Funksiyaga kirishni soddalashtirish uchun uning sarlavhasida jimlik bo'yicha parametrlar qiymatlarini ko'rsatish mumkin. Bu parametrlar ro'yxatda oxirgi bo'lishi lozim va funksiyani chaqirishda tashlab yuborilishi mumkin. Agar chaqirishda parametr tushib qolgan bo'lsa, undan keyin keluvchi barcha parametrlar ham tushib qoldirilishi mumkin. Jimlik bo'yicha parametrlar qiymatlari sifatida konstantalar, global o'zgaruvchilar va ifodalardan foydalanish mumkin:


int f(int a, int b = 0);


void f1(int, int = 100, char* = 0; /* обратите внимание на пробел между * и = (без него получилась бы операция сложного присваивания *=) */
void err(int errValue = errno); // errno – global o'zgaruvchi
. . .
f(100); f(a, 1); // f funksiyani chaqirish variantlari
f1(a); f1(a, 10); f1(a, 10, "Vasia"); // f1 funksiyani chaqirish variantlari
f1(a, , "Vasia") // noto'g'ri

Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   38   39   40   41   42   43   44   45   ...   90




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish