Dastur matni va preprotsessor. C++ tilida matnli fayl shaklida tayyorlangan dastur uchta qayta ishlash bosqichlaridan o`tadi. Matnni preprosessor
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
foydalanish lozimdir. Bu direktivada iostream.h sarlavhali fayl nomi quyidagilarni bildiradi: st- standart, i- input(kirish), o- output(chiqish), h – head(sarlavha).