Lokal va global o‘zgaruvchilar. amali


 Joylashtiriladigan (inline) funksiyalar



Download 260,13 Kb.
Pdf ko'rish
bet2/2
Sana12.04.2022
Hajmi260,13 Kb.
#545108
1   2
Bog'liq
Lokal va global o‘zgaruvchilar. amali

6. Joylashtiriladigan (inline) funksiyalar 
Kompilyator ishlashi natijasida har bir funksiya mashina kodi ko‘rinishida bo‘ladi. 
Agar dasturda funksiyani chaqirish ko‘rsatmasi bo‘lsa, shu joyda funksiyani adresi 
bo‘yicha chaqirishning mashina kodi shakllanadi. Odatda funksiyani chaqirish 
protsessor tomonidan qo‘shimcha vaqt va xotira resurslarini talab qiladi. Shu 
sababli, agar chaqiriladigan funksiya hajmi unchalik katta bo‘lmagan hollarda, 
kompilyatorga funksiyani chaqirish kodi o‘rniga funksiya tanasini o‘zini 
joylashtirishga ko‘rsatma berish mumkin. Bu ish funksiya prototipini inline kalit 
so‘zi bilan e’lon qilish orqali amalga oshiriladi. Natijada hajmi oshgan, lekin 
nisbatan tez baja-riladigan dastur kodi yuzaga keladi.
Funksiya kodi joylashtiriladigan dasturga misol. 
#include
using namespace std;
inline int Summa(int, int);
int main()
{
int a=2,b=6,c=3;
char yangi_qator = ‘\n’;
cout << Summa(a,b) << yangi_qator;
cout << Summa(a,c) << yangi_qator;
cout << Summa(b,c) << yangi_qator;
return 0;
}
int Summa(int x, int y)
{
return x+y;
}
Keltirilgan dastur kodini hosil qilishda Summa() funksiyasi chaqirilgan joylarga 
uning tanasidagi buyruqlar joylashtiriladi.
7. Qayta yuklanuvchi funksiyalar 
Ayrim algoritmlar berilganlarning har xil turdagi qiymatlari uchun qo‘llanishi 
mumkin. Masalan, ikkita sonning maksimumini topish algoritmida bu sonlar butun 
yoki haqiqiy turda bo‘lishi mumkin. Bunday hollarda bu algoritmlar amalga 
oshirilgan funksiyalar nomlari bir xil bo‘lgani ma’qul. Bir nechta funksiyani bir xil 
nomlash, lekin har xil turdagi parametrlar bilan ishlatish 
funksiyani qayta yuklash 
deyiladi.
Kompilyator parametrlar turiga va soniga qarab mos funksiyani chaqiradi. Bunday 
amalni «
hal qilish amali
» deyiladi va uning maqsadi parametrlarga ko‘ra aynan 
(nisbatan) to‘g‘ri keladigan funksiyani chaqirishdir. Agar bunday funksiya 
topilmasa kompilyator xatolik haqida xabar beradi. Funksiyani aniqlashda funksiya 
qaytaruvchi qiymat turining ahamiyati yo‘q. Misol:
#include
using namespace std;


int max(int,int);
char max(char,char);
float max(float,float)
int max(int,int,int);
void main()
{
int a,int b,char c,char d,int k,float x,y;
cin>>a>>b>>k>>c>>d>>x>>y;
cout<}
int max(int i,int j){return (i>j)?i:j;}
char max(char s1,char s2){return (s1>s2)?s1:s2;}
float max(float x,float y){return (x>y)?x:y;}
int max(int i,int j,int k)
{
return (i>j)?(i>k? i:k;):((j>k)?j:k;);
}
Agar funksiya chaqirilishida argument turi uning prototipidagi xuddi shu o‘rindagi 
parametr turiga mos kelmasa, kompilyator uni parametr turiga keltirilishga harakat 
qiladi - bool va char turlarini int turiga, float turini double turiga va int turini 
double turiga o‘tkazishga.
Qayta yuklanuvchi funksiyalardan foydalanishda quyidagi qoidalarga rioya qilish 
kerak:
- qayta yuklanuvchi funksiyalar bitta ko‘rinish sohasida bo‘lishi kerak;
qayta yuklanuvchi funksiyalarda kelishuv bo‘yicha parametrlar ishlatilsa, bunday 
parametrlar barcha qayta yuklanuvchi funksiyalarda ham ishlatilishi va ular bir xil 
qiymatga ega bo‘lish kerak;
- agar funksiyalar parametrlarining turi faqat «const» va ‘&’ belgilari bilan farq 
qiladigan bo‘lsa, bu funksiyalar qayta yuklanmaydi.

Download 260,13 Kb.

Do'stlaringiz bilan baham:
1   2




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