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



Download 333,2 Kb.
bet53/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   49   50   51   52   53   54   55   56   ...   90
Bog'liq
C majmua

#define buyrug'i

#define buyrug'i dastur matnidagi o'rin almashtirishni aniqlaydi. U:



  • simvolik o'zgarmaslarni:

#define matn_nomi almashtiriladi


(nomga kiruvchilarni barchasi o'rin almashtirish matniga almashtiriladi);





  • funksiyalar kabi ko'rinadigan, lekin ularning matnlarini dastur matniga qo'yish orqali amalga oshiriladigan markoslarni

#define matn_nomi (parameri) almashtiriladi





  • shartli kompilyatsiyani boshqaruvchi simvollarni. Ular #ifdef va #ifndef buyruqlar bilan birgalikda foydalaniladi. Format:

#define nom


aniqlash uchun qo'llaniladi.


Misollar:


#define VERSION 1


#define VASIA "Ishmatov Diyor”
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MUX

Nomlarni katta harflar bilan yozish tavsiya etiladi, bu ularni o'zgaruvchilar va fayllar nomlaridan farqlash uchun qilinadi. Makros parametrlari makro almashtirishda qo'llaniladi, masalan, agar dastur matnida y = MAX(sum1, sum2); makrosni chaqirish ishlatilayotgan bo'lsa, u


y = ((sum1)>(sum2)?(sum1):(sum2));


bilan almashtiriladi.


Doiraviy qavslarning yo'qligi noto'g’ri hisoblash tartibiga olib kelishi mumkin, chunki protsessor oldi qo'yuvchi matnni sintaksis nuqtai nazaridan baholamaydi. Masalan, agar #define sqr(x) (x*x) makrosga sqr(y+1) kabi murojaat qilinsa, almashtirish natijasida (y+1*y+1) ifoda xosil bo'ladi.
Makroslar va simvolik o'zgarmaslar C tildan meros, C++ da dasturlar yozishdan foydalanmaslik lozim. Simvolik o'zgarmaslar o'rniga const yoki enum lardan, makroslar o'rniga esa – yuklangan funksiya yoki shablonlardan foydalangan ma'qul.


Shartli kompilyatsiya buyruqlari

#if, #ifdef va #ifndef shartli kompilyatsiya buyruqlari dastur alohida qismlarining kompilyatsiyasidan qutilish uchun qo'llaniladi. Bu dasturni sozlashda yoki masalan, turli platformalar uchun dasturning bir nechta talqinlarini qo'llashda foyda beradi.


#if buyrug'i formati:

#if konstanta_ifoda



[ #elif konstanta_ifoda
…]
[ #elif konstanta_ifoda
…]
[ #else
…]
#endif

#elif buyruqlar soni – ixtiyoriy. Kodni tashlab yuboruvchi bloklari tavsiflarni ham, bajariluvchi operatorlarni o'z ichiga olishi mumkin. Sarlavhali faylning turli talqinlarini sifatli kiritish misoli:


#if VERSION == 1


#define INCFILE "vers1.h"
#elif VERSION == 2
#define INCFILE "vers2.h" /* va hokazo */
#else
#define INCFILE "versN.h"
#endif
#include INCFILE

Konstanta ifodalarda defined(nom_konstanta) yordamida konstanta aniqlanganligini tekshirishdan foydalanishi mumkin, masalan:


#if defined(__BORLADC__) && __BORLANDC__ == 0x530 // BC5.3;


typedef istream_iterator istream_iter;
#elif defined(__BORLAND__) // BC5.2;
typedef istream_iterator istream_iter;
#else // VC5.0;
typedef istream_iterator, istream_iter;
#endif

Buyruqning boshqa vazifasi – kod parchalarini vaqtincha sharhlash, masalan:


#if 0
int i, j;


double x, y;
#endif

Buyruqlarning ichma-ich joylashishiga ruxsat borligi uchun bunday usul juda qulay.


Ko'pincha dasturlarda #ifdef va #ifndef buyruqlar ishlatiladi, ular #define buyrug'i yordamida ulardagi simvol aniqlangan yoki aniqlanmaganligiga bog'liq ravishda kompilyatsiyani boshqarishga imkon beradi (hech bo'lmaganda bo'sh satr kabi, masalan, #define 32_BIT_SUPPORT);

#ifdef simvol


// agar simvol aniqlangan bo'lsa, quyida joylashgan kod kompilyatsiyalanadi
#ifndef simvol
// agar simvol aniqlanmagan bo'lsa, quyida joylashgan kod kompilyatsiyalanadi

Bu buyruqlar birinchi #elif, #else yoki #endif gacha bajariladi.


#ifndef buyrug'i ko'pincha sarlavha faylni faqat bir marta kiritishni ta'minlash uchun qo'llaniladi:

#ifndef HEADER_INCLUDED


#include "myheader.h"
#define HEADER_INCLUDED
#endif



Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   49   50   51   52   53   54   55   56   ...   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