..

C Dasturlash tili - Kirish

Loyihani qo'llab quvvatlash uchub buyerga bosing

C - bugungi kunda yoshi eng ulug’ dasturlash tillaridan biri va hozirgi ko’plab dastulash tillarining otasi hisoblanadi.

Ushbu dasturlash tilining tarixiga keladigan bo’lsak 1970-yillarda UNIX operatsion tizimi yaratish va unga modullar yozish uchun Bell Labs laboratoriyasining dasturchisi Dennis Ritchie tomonidan ishlab chiqilgan. Bundan tashqari C dasturlash tili utilitlar, kompilyatorlar va amaliy dasturlarni yozish uchun ham ishlatiladi. Shuning uchun C tizimli dasturlash tili deb ataladi.

C dasturlash tilining bugungi kungacha saqlanib qolishi operatsion tizimlarning ishlash printsiplari nisbatan universal ekanligi bilan bog’liq. Shuningdek C o’rta hamda bir vaqtda pastki darajali dasturlash tili hisoblanadi, chunki u yuqori darajali tillar elementlarini assembler tilining funksionalligi va ishlashi bilan birlashtiradi. Ya’ni boshqa daturlash tillariga nisbatan olib qaraganda qurilmalarga yaqin muhitda ishlaydi. Natijada, ushbu dasturlash tili orqali biz past darajadagi ma’lumotlarni manipulyatsiya qilishimiz va shu bilan birga dasturning ishlashini boshqarish uchun yuqori darajadagi konstruksiyalardan foydalanishimiz mumkin.

Eslatib o’tish kerakki hozirgi ko’plab mikrochiplar C dasturlash tilini to’g’ridan to’g’ri o’zida qo’llab quvvatlashga ega. Ularda aynan bu tilning bazaviy konstruksiyalarini tushunish uchun ishlab chiqish vaqtida alohida bloklar qo’yib ketilgan. Masalan mikrocontrollerlar va arm protsessorlariyam shunday chiplardan hisoblanadi.

Nima uchun bugungi kunda C ni o’rganish kerak?

C dasturlash tili asosida C++, C#, D, Java, Objective C, PHP, Perl, Python, Scala va shunga o’xshash juda ko’plab dasturlash tillari ishlab chiqilgan. Hattoki C dasturlash tilini o’ziyam C dasturlash tilida yozilgan.

Yoki mashhur dasturlarni olaylik. Unix oilasiga tegishli barcha operatsion tizimlar (linux, macos, bsd), bash, bind, apache, nginx, openSSH, doom, quake, git kabilar C dasturlash tilida yozilgan. Bugungi kundagi mikrokontrollerlar va robototexnikadayam asos sifatida shu til ishlatiladi. Demakki biz uchun hali ko’plab yillar o’z aktullaligini yo’qotmaydi. Dunyodagi talabgor dasturlash tillarga bo’lgan vakansiyalardayam C Top10’da turadi. Agarda siz yuqori darajadali tillarda ishlasangiz sizdagi bazaviy bilimlarni chuqurroq o’rganish uchun yaxshigina asos bo’lib bera oladi.

C da birinchi dasturni yozish

C o’z navbatida kompilyatsiya qilinadigan til hisoblanadi. Ya’ni siz inson tiliga yaqin metodda yozgan kodlaringiz keyinchalik kompilyatsiya vaqtida mashina tiliga o’giriladi. Bu jarayonni amalga oshiradigan dasturlarning bir necha turlari bor: Tiny C, PCC, GCC, Clang. Ish prinsipi jihatdan bularning ba’ri deyarli bir xil vazifani bajaradi. Agarda endi boshlagan bo’lsangiz siz uchun gcc ancha qulay variant. Ko’plab platformalarda o’rnatish oson, hattoki ba’zi bir unix tizimlarda oldindan o’rnatilgan bo’ladiyam. Keyinchalik dasturlashni o’zini o’rgangach albatta bu mavzuda o’zingiz chuqurroq izlanish qilganingiz maqul.

Kodlarni tahrirlash uchun bo’lsa odatiy matn muharriridan boshlab toki keng imkoniyatlarga ega IDElargacha foydalanishingiz mumkin. Eng muhimi C sintaksisini ranglarga ajratishni qo’llash imkoni bo’lsa bas. Ish jarayonini osonlashtirish uchun muhim metodlardan biri hisoblanadi bu.

Salom dunyo dasturi

// Dastur: hello.c
#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

Dasturni kompilyatsiya qilish

Yuqorida aytib o’tilganidek C kodlarini mashina tiliga o’girish uchun GCC utilitasidan foydalanish mumkin. Buning uchun terminalda gcc buyrug’iga dastur kodi tushirilgan fayl argument sifatida beriladi. Shundan so’ng aynan kodlarimiz turgan papkada a.out fayli paydo bo’ladi. Bu esa mashina kodiga o’girilgan dastur bo’lib uni bemalol terminal orqali ishga tushirsak bo’ladi.

gcc hello.c

Bunda:

ytmdt@home:/tmp/dars$ gcc hello.c 
ytmdt@home:/tmp/dars$ ls
a.out  hello.c
ytmdt@home:/tmp/dars$ ./a.out 
Hello, World!
ytmdt@home:/tmp/dars$ 

Agarda sizda dastur nomini chiqarish vaqtida tahrirlash kerak bo’lsa bu uchun -o argumentidan foydalanishingiz mumkin. Bundan a.out o’rniga hello fayli paydo bo’ladi va ./hello buyrug’i orqali dasturni ishga tushirish mumkin bo’ladi.

$: gcc -o hello hello.c

Dasturni tahlil qilish

“Salom dunyo” dasturidan foydalangan holda C dasturlash tilini mohiyarlarini analiz qilish mumkin.

Bunda int main() funskiyasi dasturning asosiy bo’limi hisoblanib C dasturlarining boshlanish nuqtasini o’z zimmasiga oladi. Ya’ni har qanday c dastur kodlari aynan shu qismdan ishga tushishni boshlaydi. Shu sababli int main() funksiyasi doimiy majburiy hisoblanadi.

E’tibor qildadigan bo’lsak funksiya nomidan avval int parametri ham ishtirok etyapti. Buning asosiy sabablaridan biri main() funskiyasi o’z ishini bajarish vaqtida integer ya’ni son qaytaradi. Dasturchi yoki umuman olgan dastur ishga tushirilayotgan muhit ushbu raqamlar(kodlar)ga qarab dastur statusini aniqlaydi. Masalan 0 bu muvaffaqiyatli status bo’lsa, 1 kodi dastur tugatilishida g’ayritabiiy muammolar yuz berganidan dalolat beradi. Bu kodlarni esa biz return steki orqali qaytaramiz.

printf() - bu funksiya ma’lumotlarni chop etish uchun ishlaydi. Uning asosiy maqsadi ekranga biror bir matnlarni yoki belgilarni chiqarish hisoblanad. printf funskiyasi biror matnni chop etgan vaqtda yangi qatorga o’tish imkoniga ega emas, shu sababli biz “Hello, World!” matnidan so’ng \n ya’ni yangi qatorga o’tish belgisini yozib qoldiryapmiz.

semicolon - nuqta vergul ifodaning tugallanganini bildiradi. Komplyator ushbu ifoda tugallanishiga qarab keyingi ifodani qayta ishlashga o’tadi.

headers - sarflavhalar, dastur kodining yuqori qismida #include <stdio.h> qatorini ko’rishimiz mumkin va bular sarlavha deb ataladi. Bunda #include degan so’ng qaysi sarlavha faylini import qilish kerakligi ko’rsatiladi. Shuningdek eslatib o’tish kerakki sarflavha fayllarni ba’zi manbaalarda kutubxona degan nom bilanam yuritiladi. Bu faylning asosiy vazifasi boshqa c faylida joylashgan funksiya yoki ma’lum ma’lumlarni boshqa c faylida foydalanish uchun ishlaydi. Ya’ni sarflavha fayli c faylida keltirilgan funksiyalar ro’yxatini, ushbu funksiyalar qanday parametrlarni qabul qilishini o’z ichiga oladi.

Bizdagi misolda printf() funksiyasidan foydalanish maqsadida stdio.h fayli import qilingan. Chunki C dasturlash tilini o’zida aslida printf funksiyasi mavjud emas. Bu ANSII standartlariga ko’ra implementatsiya qilingan funksiya hisoblanadi.