Dastur matni va preprotsessor . C++ tilida matnli fayl shaklida
tayyorlangan dastur uchta qayta ishlash bosqichlaridan o`tadi. Matnni preprosessor
223
direktivalari asosida o`zgartilishi. Bu jarayon natijasi yana matnli fayl bo`lib
preprotsessor tomonidan bajariladi.
Kompilyatsiya. Bu jarayon natijasi mashina kodiga o`tkazilgan ob`yektli
fayl bo`lib, kompilyator tomonidan bajariladi.
Bog`lash. Bu jarayon natijasi to`la mashina kodiga o`tkazilgan bajariluvchi
fayl bo`lib, bog`lagich tomonidan bajariladi.
Preprotsessor vazifasi dastur matnini preprotsessor direktivalari asosida
o`zgartirishdir.
Define direktivasi dasturda bir jumlani ikkinchi jumla bilan
almashtirish uchun ishlatiladi. Bu direktivadan foydalanishning sodda misollarini
biz yuqorida ko`rib chiqdik.
Include direktivasi ikki ko`rinishda ishlatilishi
mumkin.
#include fayl nomi direktivasi dasturning shu direktiva o`rniga qaysi
matnli fayllarni qo`shish kerakligini ko`rsatadi.
#include direktivasi
dasturga kompilyator standart kutubxonalariga mos keluvchi sarlavhali fayllar
matnlarini qo`shish uchun mo`ljallangandir. Bu fayllarda funksiya prototipi, tiplar,
o`zgaruvchilar, o`zgarmaslar ta`riflari yozilgan bo`ladi. Funksiya prototipi
funksiya qaytaruvchi tip, funksiya nomi va funksiyaga uzatiluvchi tiplardan iborat
bo`ladi. Masalan
, cos funksiyasi prototipi quyidagicha yozilishi mumkin: double
cos(double ). Agar funksiya nomidan oldin
void tipi ko`rsatilgan bo`lsa bu
funksiya hech qanday qiymat qaytarmasligini ko`rsatadi. Shuni ta`kidlash lozimki
bu direktiva dasturga standart kutubxona qo`shilishiga olib kelmaydi. Standart
funksiyalarning kodlari bog`lash ya`ni aloqalarni tahrirlash bosqichida,
kompilyatsiya bosqichidan so`ng amalga oshiriladi.
Kompilyatsiya bosqichida sintaksis xatolar tekshiriladi va dasturda bunday
xatolar mavjud bo`lmasa, standart funksiyalar kodlarisiz mashina kodiga
o`tkaziladi. Sarlavhali fayllarni dasturning ixtiyoriy joyida ulash mumkin bo`lsa
ham, bu fayllar odatda dastur boshida qo`shish lozimdir. Shuning uchun bu
fayllarga sarlavhali fayl (
header file ) nomi berilgandir.
Dasturda
kiritish
va
chiqarish
funksiyalaridan
masalan,
cout<< funksiyasidan foydalanish uchun
#include direktivasidan
224
foydalanish lozimdir. Bu direktivada
iostream.h sarlavhali fayl nomi quyidagilarni
bildiradi: st- standart, i- input(kirish), o- output(chiqish), h – head(sarlavha).