1-bo‘lim

C tili bilan tanishuv

C qanday paydo bo'lgan, nima uchun ellik yildan keyin ham eng muhim tillardan biri va uni bugun o'rganish nima beradi.

🕑 8 daqiqa o‘qish 📄 954 so‘z 👁 5 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. C qayerdan paydo bo'ldi?
  2. C bugun qayerda ishlaydi?
  3. Nima uchun C ni o'rganish kerak?
  4. C ning kuchli va zaif tomonlari
  5. Birinchi dastur - oldindan ko'rish
  6. C va boshqa tillar - bir vazifa
  7. Darslik qanday tuzilgan
  8. Xulosa

Kompyuteringizdagi deyarli har bir dastur ostida C turadi. Windows va Linux yadrosi, MySQL, SQLite, Git, Nginx, Python interpretatorining o'zi - hammasi C da yozilgan.

C qayerdan paydo bo'ldi? #

DMR

Dennis Ritchie (1941-2011)

Bell Labs muhandisi. 1972-yilda C tilini yaratdi va Ken Thompson bilan birga UNIX operatsion tizimini shu tilda qayta yozdi. Bu tarixdagi eng ta'sirchan qaror bo'ldi: shu paytgacha operatsion tizimlar assembler tilida yozilar va bir kompyuterdan boshqasiga ko'chirilmas edi.

C tilining yo'li 1969 B tili 1972 C yaratildi 1978 K&R kitobi 1989 ANSI C (C89) 1999 C99 2018 C17 Ellik yildan ortiq vaqt - va til hali ham eng ko'p ishlatiladigan beshlikda
C standartlari sekin o'zgaradi - bu uning kuchli tomoni
K&R kitobi

1978-yilda Brian Kernighan va Dennis Ritchie «The C Programming Language» kitobini chiqardi. Uni qisqacha K&R deb atashadi. Kitob atigi 200 sahifadan iborat, lekin butun bir tilni to'liq tasvirlaydi - dasturlash tarixidagi eng ta'sirchan kitoblardan biri.

O'sha kitobdagi birinchi dastur hello, world edi. Bugun ham har bir dasturchi o'z yo'lini shu ikki so'zdan boshlaydi.

C bugun qayerda ishlaydi? #

SohaMisollar
Operatsion tizimlarLinux yadrosi, Windows yadrosi, macOS asosi
Ma'lumotlar bazasiMySQL, SQLite, PostgreSQL, Redis
Dasturlash tillariPython (CPython), PHP, Ruby, Lua interpretatorlari
Tarmoq dasturlariNginx, curl, OpenSSL, Git
O'rnatilgan tizimlarMikrokontrollerlar, avtomobil, tibbiy uskuna
Grafika va o'yinSQLite, SDL, OpenGL drayverlari
Kosmik texnikaSun'iy yo'ldosh va rover dasturlari
Siz allaqachon C dan foydalanyapsiz

Python'da print("salom") deb yozganingizda, aslida C da yozilgan funksiya ishga tushadi. Telefoningiz, routeringiz, mashinangizning boshqaruv bloki - ularning barchasida C kodi ishlaydi.

C ni o'rganish - bu «yana bir til» o'rganish emas, bu kompyuter qanday ishlashini tushunish.

Nima uchun C ni o'rganish kerak? #

Abstraksiya darajalari Python, JavaScript, PHP Xotirani o'zi boshqaradi - qulay, lekin sekinroq C, C++, Rust Xotirani siz boshqarasiz - tez va to'liq nazorat Assembler Protsessor buyruqlari - juda tez, juda mashaqqatli Protsessor (temir) Yuqori Past C - temirga eng yaqin, lekin hali ham o'qish mumkin bo'lgan til
C yuqori darajali til bilan assembler orasidagi ko'prik
  • Kompyuterni tushunasiz. Xotira nima, stek va uyum (heap) qanday farq qiladi, o'zgaruvchi aslida qayerda yotadi - C buni yashirmaydi.
  • Boshqa tillar osonlashadi. C dan keyin C++, Java, C#, Go, Rust sintaksisi tanish tuyuladi.
  • Tezlik. C kodi to'g'ridan-to'g'ri mashina kodiga aylanadi.
  • Ish imkoniyatlari. O'rnatilgan tizimlar, drayverlar, o'yin dvigatellari, moliyaviy tizimlar - bularda C va C++ hukmron.
  • Kod hajmi. Butun til atigi 32 ta kalit so'zdan iborat. Python'da 35 ta, Java'da 50 dan ortiq.

C ning kuchli va zaif tomonlari #

Kuchli tomoniZaif tomoni
Juda tez ishlaydiXotirani o'zingiz boshqarasiz
Kichik hajmli dasturXatolik qilish oson (segfault)
Har qanday platformada ishlaydiStandart kutubxona kichik
Til soddaligicha qolganSatrlar bilan ishlash noqulay
Butun dunyoda hujjatlanganObyektga yo'naltirilgan emas
C sizni himoya qilmaydi

Python'da ro'yxatning 100-elementiga murojaat qilsangiz, xatolik xabari chiqadi. C da esa dastur begona xotiraga kiradi va hech narsa demaydi - yoki noto'g'ri natija beradi, yoki keyinroq kutilmaganda qulaydi.

Bu qo'rqinchli emas - shunchaki e'tibor talab qiladi. Darslikning 12-14-bo'limlarida bu mavzuni batafsil ko'ramiz.

Birinchi dastur - oldindan ko'rish #

C
#include <stdio.h>

int main(void) {
    printf("Salom, dunyo!\n");
    return 0;
}
Natija
Salom, dunyo!

Hozircha har bir qatorni tushunish shart emas. Keyingi bo'limda muhitni sozlaymiz va shu dasturni o'z kompyuteringizda ishga tushiramiz.

C va boshqa tillar - bir vazifa #

Bir xil vazifani uch tilda solishtiring: 1 dan 5 gacha sonlar yig'indisi.

C
#include <stdio.h>

int main(void) {
    int yigindi = 0;

    for (int i = 1; i <= 5; i++) {
        yigindi += i;
    }

    printf("Yig'indi: %d\n", yigindi);
    return 0;
}
Python
yigindi = sum(range(1, 6))
print(f"Yig'indi: {yigindi}")
Nima uchun C uzunroq?

Python bir qatorda qiladigan ishni C da bir necha qator bilan yozamiz. Buning sababi: Python sum() funksiyasi ichida aynan shunday sikl bor - faqat u sizdan yashirilgan va C da yozilgan.

C da hech narsa yashirin emas. Bu ko'proq yozishni talab qiladi, lekin har bir qadam nima qilayotganini aniq bilasiz.

Darslik qanday tuzilgan #

Bo'limlarMavzu
1-5Asoslar: muhit, sintaksis, turlar, kiritish-chiqarish
6-8Boshqaruv: operatorlar, shartlar, sikllar
9-11Ma'lumot: massivlar, satrlar, funksiyalar
12-14Ko'rsatkichlar va xotira - eng muhim qism
15-17Strukturalar, fayllar, ko'p faylli loyiha
18-20Standart kutubxona, nosozliklarni tuzatish, amaliy loyiha
12-bo'limga alohida vaqt ajrating

Ko'rsatkichlar (pointers) - C ni qiyin ko'rsatadigan yagona mavzu. Ko'pchilik aynan shu yerda to'xtaydi.

Lekin ular tushunilgach, hamma narsa joyiga tushadi: massivlar nima uchun shunday ishlashi, funksiyaga qanday qilib katta ma'lumot uzatish, dinamik xotira nima uchun kerakligi.

Shoshilmang. O'sha bo'limni ikki marta o'qishga tayyor bo'ling.

Amaliy topshiriq
  1. Kompyuteringizdagi qaysi dasturlar C da yozilganini qidiring.
  2. K&R kitobi haqida ma'lumot toping - u nima uchun mashhur?
  3. Dennis Ritchie va Ken Thompson hayoti bilan tanishing.
  4. Linux yadrosining kod hajmini (qatorlar soni) toping.
  5. C va C++ orasidagi asosiy farqni bir jumlada yozing.
  6. Yuqoridagi C dasturini qog'ozga ko'chirib yozing - har bir belgiga e'tibor bering.
  7. Nima uchun printf da \n kerakligini taxmin qiling.
  8. TIOBE reytingida C hozir nechanchi o'rinda ekanini tekshiring.
  9. O'rnatilgan tizim (embedded) nima ekanini o'rganing.
  10. Nima uchun C ni o'rganmoqchi ekaningizni bir abzatsda yozing.

Xulosa #

  • C ni 1972-yilda Dennis Ritchie Bell Labs da yaratgan.
  • UNIX ni C da qayta yozish tilni butun dunyoga tarqatdi.
  • Bugun operatsion tizimlar, ma'lumotlar bazasi, tarmoq dasturlari va o'rnatilgan tizimlar C da yoziladi.
  • C - yuqori darajali til bilan assembler orasidagi ko'prik.
  • Tilda atigi 32 ta kalit so'z bor - o'rganish uchun kam, lekin ularni chuqur bilish kerak.
  • C sizni xatolardan himoya qilmaydi - nazorat ham, javobgarlik ham sizda.
  • C ni bilgan odam boshqa har qanday tilni tezroq o'zlashtiradi.

Keyingi bo'limda muhitni sozlaymiz va birinchi dasturni ishga tushiramiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.