Internet Derazalar Android
Kengaytirmoq

Ritchsiy dasturlash si. B.

Anotoratsiya.

1988 yilda nashr etilgan Ingliz tilida nashr etilgan Ingliz tilida nashr etilgan "Si" standartini hisobga olgan holda taniqli mualliflar kitobi, shuningdek, barcha tadqiqotlar uchun klassik bo'lib qolmoqda va / yoki ikkala Si va C ++ yordamida. Ushbu kitobning rus tilidagi tarjimasi birinchi marta 1992 yilda tahririyat "Moliya va statistika" tomonidan nashr etilgan va shu vaqtdan beri o'quvchilarga doimiy talabdir.

Ushbu uchinchi rus nashrida tarjima dastlabki bilan qayta jihozlangan bo'lib, so'nggi yillarda belgilangan o'zgarishlarni hisobga olgan holda ba'zi o'zgartirishlar, shuningdek, muallif tomonidan http: // raqamiga sharhlar cm.bell-lababs.com/cm/ cs / combo / cooks / 2udiifcs.html.

Dasturchilar va talabalar uchun.

"Moliya va statistika" nashriyot uyi ishtirokida tayyorlangan nashr

B. Kernegan, D. Ritti

Ruhoniy

Birinchi nashrga kirish so'zi

Kirish

1-bob. Tillarning sharhi

1.1 Keling, ehtimol

1.2 o'zgaruvchilar va arifmetik iboralar

1.3 ko'rsatmalar uchun

1.4 Ajomalar

1.5 Korxonaning belgilari

1.5.1 nusxa ko'chirish fayli

1.5.2 Hisoblash belgilari

1.5.3 Hisoblash satri

1.5.4 deb hisoblash so'zlari

1.6 qatorlar

1.7 funktsiyalari

1.8 Dalillar. Qiymati bo'yicha qo'ng'iroq

1.9 ramziy massivlar

1.10 EREKTIKA o'zgaruvchilar va ko'lami

2-bob. Turlar, operatorlar va iboralar

2.1 O'zgaruvchilar nomlari

2.2 Ma'lumotlar turlari va o'lchamlari

2.3

2.4 reklama

2.5 arifmetik operatorlar

2.6 Qiyomat operatorlari va mantiqiy operatorlar

2.7 Turi o'zgartirish

2.8 o'sish va kamaytirish operatorlari

2.9 ni urish

2.10 Operatorlar va tayinlash iboralari

2.11 shartli ifodalar

2.12. Hisob-kitoblarning ustuvorligi va ketma-ketligi

3-bob. Boshqarish

3.1 Ko'rsatmalar va bloklar

3.2 IF-LOGIN

3.3-dizayn - agar dizayn

3.4 Asosiy kalit

3.5 G'ildirak tsikllari va uchun

3.6.

3.7 Yo'riqnomalar tanaffus va davom etish

3.8 Goto va teglar

4-bob. Dasturning vazifalari va tuzilishi

4.1 Funktsional funktsional ma'lumotlar

4.2 Noqonuniy bo'lmagan qiymatlarni qaytarish funktsiyalari

4.3 tashqi o'zgaruvchilar

4.4 Ko'rish doirasi

4.5 sarlavha fayllari

4.6 statik o'zgaruvchilar

4.7 Ro'yxatdan o'tish o'zgaruvchilar

4.8 blok tuzilishi

4.9 boshlang'ichizatsiya

4.10 rekursiya

4.11 Si Til preprosicer

4.11.1 yoqish fayl

4.11.2 Makro-tartiblash

4.11.3 shartli kompilyatsiya

5-bob. Belgilar va massivlar

5.1 Belgilar va manzillar

5.2 vazifalar va funktsiyalarning dalillari

5.3 punktlar va qatorlar

5.4 manzilga yo'naltirilgan arifmetika

5.5 ramziy funktsiya vazifalari

5.6 Adacter massasi, ko'rsatkichlar bo'yicha ko'rsatmalar

5.7 Ko'p o'lchovli massivlar

5.8 punktlar qatorlarini ishga tushirish

5,9 Ko'p o'lchovli massivlarga qarshi

5.10 buyruq satrining argumenti

Funktsiyalar uchun 5.11 punkti

5.12 Muvaffaqiyatli e'lonlar

6-BOB. STORTURATLAR

6.1 Tuzilmalar haqida asosiy ma'lumotlar

6.2 Tuzilmalar va funktsiyalar

6.3 Sinovlar qatorlari

6.4 inshootlar bo'yicha ko'rsatmalar

6.6 Jadvallarni ko'ring

6.7 TARTIBA

6.8 Uyushma

6.9 bitli maydonlar

7-bob. Enter va yakunlash

7.1 Standart I / O

7.2 rasmiy xulosa (printf)

7.3 O'zgaruvchan uzunlikdagi dalillar ro'yxati

7.4 Format Kirish (SCANF)

7.5 Kirish fayllari

7.6 Xatolarni boshqarish (Stord va Chiqish)

7.7 Chop etish

7.8 Boshqa kutubxona funktsiyalari

7.8.1 qatorlar bilan operatsiyalar

7.8.2 belgisi sinfini tahlil qilish va belgilash

7.8.3 ungetc xususiyati

7.8.4 Operatsion tizim buyruqlarini bajarish

7.8.5 Xotiralarni boshqarish

7.8.6 Matematik funktsiyalar

7.8.7 tasodifiy raqam generator

8-bob. Unix tizimi bilan interfeys

8.1 Fayl nomlari

8.2 pastki i / o daraja (o'qish va yozish)

8.3 Tizimga qo'ng'iroqlar Ochiq, yarating, yoping, ajratib oling

8.4 O'zboshimchalik bilan kirish (Lseek)

8.5 misol. Fopen va Getc funktsiyalarini amalga oshirish

8.6 Misol. Kataloglarni chop eting

8.7 misol. Xotira Discenserer

AW A. Ma'lumot qo'llanmasi

A1. Kirish

A2. Lug'at to'g'risida kelishuv

A2.1. Leksemes (tokenlar)

A2.2. Sharh

A2.3. Identifikatorlar

A2.4. Kalit so'zlar

A2.5. Doimiy

A2.5.1. Butun konstantalar

A2.5.2. Ramziy konstitutsiya

A2.5.3. Suzuvchi nuqta konstantlari

A2.5.4. Konstantalarni o'tkazish

A2.6. Satrlar soni

A3. Sintaksisning notari

A4. Identifikatorlarni anglatadi

A4.1. Xotira sinfi

A4.2. Asosiy turlar

A4.3. Derivativlar

A4.4. Saralash turi

A5. Ob'ektlar va lvalues.

A6. Konversiya

A6.1. Butun sonni ko'paytirish

A6.2. Aqlli o'zgarishlar

A6.3. Butun va suzuvchi nuqta

A6.4. Suzuvchi nuqta turlari

A6.5. Arifmetik o'zgarishlar

A6.6. Ko'rsatkichlar va butun son

A6.7. Bo'sh tur

A6.8. Bo'shliqdagi ishchilar

A7. Iboralar

A7.1. Ko'rsatgichni yaratish

A7.2. Asosiy iboralar

A7.3. Postfix iboralar

A7.3.1. Massiv elementlariga murojaat qilish

A7.3.2. Qo'ng'iroq funktsiyasi

A7.3.3. Tuzilishlarga murojaat qilish

A7.3.4. Postfiksning o'sishi va kamaytirish operatorlari

A7.4. Uyusher operatorlari

A7.4.1. Prefiksning o'sishi va pasayishi operatorlari

A7.4.2. Operator manzilni qabul qiladi

A7.4.3. Bilvosita kirish operatori

A7.4.4. Operator unbari plyus

A7.4.5. Operator birjadan tashqari minus

A7.4.6. Kaltaklangan rad etish operatori

A7.4.7. Operator mantiqiy inkor

A7.4.8. Hajmi o'lchamini aniqlash operatori

A7.5. Qisqartirish operatori

A7.6. Murakkab operatorlar

A7.7. Qo'shimcha operatorlar

A7.8. Siljish operatorlari

A7.9. Aloqa operatorlari

A7.10. Operatorlar tengligi

A7.11. Kaltaklangan I.

A7.12. Singan eksklyuziv yoki

A7.13. Operator ikki yoki

A7.14. Operator mantiqiy I.

A7.15. Operator mantiqiy yoki

A7.16. Shartli operatori

A7.17. Tayinlash iboralari

A7.18. Operator Vergul

A7.19. Doimiy ifodalar

A8. reklama

A8.1. Xotira sinfi tartibli vositalari

A8.2. Typasits turlari

A8.3. Tuzilishlar va birlashmalarning tasniflanadi

A8.4. Ro'yxat

A8.5. Tahlilchilar

A8.6. E'lonlar nimani anglatadi

A8.6.1. Ko'rsatkichlar

A8.6.2. MassaDlar bo'limlari

A8.6.3. Funktsiyalarni joylashtirish

A8.7. Boshlang'ichizatsiya

A8.8. Ismlarni kiriting

A8.9. Tayyorlangan yozuv.

A8.10. Tenglik turlari

A9. Ko'rsatmalar

A9.1. Belgilangan ko'rsatmalar

A9.2. Ko'rsatma

A9.3. Kompozitr

A9.4. Tanlash bo'yicha ko'rsatmalar

A9.5. Tsiklik ko'rsatmalar

A9.6. O'tish bo'yicha ko'rsatmalar

A10. Tashqi e'lonlar

A10.1. Funktsiyani aniqlash

A10.2. Tashqi e'lonlar

A11. Qo'llash va aloqa

A11.1. Leksik doiralar

A11.2. Aloqa

A12. Ishlov berish

A12.1. Uch belgining ketma-ketligi

A12.2. Bonding satri

A12.3. Makro ta'rifi va makroxissiv

A12.4. Faylni yoqish

A12.5. Shartli kompilyatsiya

A12.6. Raqamlash satr

A12.7. Xatoning avlodlari

A12.8. Pragma

A12.9. Bo'sh ko'rsatma

A12.10. Oldindan belgilangan ismlar

A13. Grammatika

B. Standart kutubxona

B1. I / O: \u003cstnio.h\u003e\u003e

B1.1. Fayl operatsiyalari

B1.2. Format chiqing

B1.3. Format kiritish

B1.4. I / o funktsiyalari

B1.5. Men / o funktsiyalari

B1.6. Faylni aniqlash funktsiyalari

B1.7. Xatolarni qabul qilish xususiyatlari

B2. Symbol sinfini tekshirish: \u003cctype.h\u003e

B3. Chiziqlar bilan ishlaydigan funktsiyalar:

B4. Matematik funktsiyalar:

B5. Maqsad maqsadlari:

B6. Diagnostika:

B7. O'zgaruvchan uzunlikdagi dalillar ro'yxati:

B8. Uzoq o'tish:

B9. Signallar:

B10. Sana va vaqt funktsiyalari: \u003cvaqt.h\u003e

B11. Amalga oshirish chegarasiga qarab: va

Ilova C. O'zgarishlar ro'yxati

Mavzu indeksi

B. Kernegan, D. Ritti

STI dasturlash tili

Nashr 3RD, tuzatildi

Ruhoniy

1978 yilda nashr etilgan paytdan boshlab, kompyuterlar dunyosida "Shunday qilib, dasturlash tili" kitobi inqilob bo'ldi. Katta avtoulovlar yanada ko'proq bo'lib qoldi va shaxsiy kompyuterning imkoniyatlari endi o'n yoshli yirik avtomobillarning imkoniyatlari bilan taqqoslanadi. Bu vaqt davomida Si tili ham o'zgargan bo'lsa ham, ham o'zgargan; SI-dan foydalanish sohasidagi samaragida u Unix operatsion tizimining asbobqi sifatida uning boshlang'ich maqsadi sifatida.

O'zgarish yillari davomida jamlangan jamlovning o'sishi, ilgari jalb qilinmagan ishlab chiquvchilar tomonidan kompilyatorlarni yaratish ...

B. Kernegan, D. Ritti

STI dasturlash tili

Nashr 3RD, tuzatildi

Ruhoniy

1978 yilda nashr etilgan paytdan boshlab, kompyuterlar dunyosida "Shunday qilib, dasturlash tili" kitobi inqilob bo'ldi. Katta avtoulovlar yanada ko'proq bo'lib qoldi va shaxsiy kompyuterning imkoniyatlari endi o'n yoshli yirik avtomobillarning imkoniyatlari bilan taqqoslanadi. Bu vaqt davomida Si tili ham o'zgargan bo'lsa ham, ham o'zgargan; SI-dan foydalanish sohasidagi samaragida u Unix operatsion tizimining asbobqi sifatida uning boshlang'ich maqsadi sifatida.

O'zgarish yillari davomida jamlangan jamg'armalarning ko'payishi, ilgari bu tilni loyihalashda ishtirok etmaydigan ishlab chiqaruvchilarning tuzuvchilari tomonidan tuzilgan - bularning barchasi aniqroq va javob berish uchun rag'batlantirgan kitobning birinchi nashriga nisbatan tilni aniqlash. 1983 yilda Amerika Milliy standartlari instituti (Amerika Milliy standartlari instituti - ANDI) Qo'mita tuzdi, bunda gol "SI tilining aniq va mustaqil ta'rifini" to'liq saqlab qolish uchun qo'ydi. Ushbu qo'mitaning ishi natijasi va SI tilining Ansi standarti paydo bo'ldi.

Standart birinchi nashrda keltirilgan til vositalarini shakllantiradi, ammo, masalan, tuzilmalarni va uzatuvchi sifatida tavsiflanmagan. U barcha funktsiyalarning ushbu ta'rifi bilan bog'liq vazifalarning izchilligini muvofiqlashtirishga imkon beradigan funktsiyaning yangi turini taqdim etadi; I / O funktsiyalari funktsiyalari, xotiralarni boshqarish, belgilar va boshqa funktsiyalar bilan ishlaydigan standart kutubxonani belgilaydi; Noma'lumotning dastlabki ta'rifida bo'lgan semantikani belgilaydi va nimada mashinaning bog'liqligi bo'lganligini aniq ajratib turadi.

"SI dasturlash tilini dasturlash" kitobining ikkinchi nashrida SI versiyasi Ansi standarti sifatida qabul qilingan. Biz uning o'zgarishiga duch kelgan joylarni eslab, yana tilni tasvirlashga qaror qildik. Ko'p paragraflarda bu sezilarli o'zgarishlarni keltirib chiqarmadi, eng muhim farqlar funktsiyani tavsiflash va funktsiyani aniqlashning yangi shakli bilan bog'liq. Shuni ta'kidlash kerakki, zamonaviy kompilyatorlar allaqachon standartning katta qismini qo'llab-quvvatlagan.

Biz birinchi nashrning qisqarishini saqlab qolishga harakat qildik. Si - bu kichik til va uni katta kitob tasvirlash talab qilinmaydi. Yangi tahrirda, eng muhim vositalar tavsifi, SI dasturlashda markaziy o'rinni egallagan ko'rsatkichlar yaxshilanadi; Eski misollar yaxshilanadi va ba'zi boblarga yangi bo'lim qo'shildi. Shunday qilib, murakkab reklamalarning misollar sharhini kuchaytirish maqsadida, reklamalarni moslashtirish og'zaki tavsiflarga va orqasiga kiritilgan. Ilgari bo'lgani kabi, barcha misollar to'g'ridan-to'g'ri foydalaniladigan mashina shaklida yozilgan matnlarda sinovdan o'tkazildi.

Ilova - bu ma'lumotli qo'llanma, ammo standart emas. Unda biz eng muhim minimal sahifalarni kiritishga harakat qildik. Rejaga ko'ra, ushbu ilova foydalanuvchi dasturchisi tomonidan osongina o'qish kerak: kompilyator ishlab chiqaruvchilari uchun standart til ta'rifi bo'lishi kerak. B Ilovada standart kutubxonaning qobiliyati ko'rsatilgan. Shuningdek, u dasturchilar uchun dasturlar kitobi, ammo kompilyator ishlab chiqaruvchilar uchun emas. Ilova C tarkibida SI tilining dastlabki versiyasidan ko'rsatilgan farqlarning qisqacha ro'yxatini taqdim etadi.

Birinchi nashrga kirish so'zida biz "Si bilan qanchalik ko'p ishlayotganingizni aytdik, shunchalik qulay bo'ladi". Bu taassurot qoldi va o'n yil davomida u bilan ishlashdan keyin. Umid qilamizki, ushbu kitob sizga Si-ni o'rganishga yordam beradi va undan muvaffaqiyatli foydalanmoqda.

Biz kitobning ikkinchi nashrini chiqarishda bizga yordam bergan do'stlarimizga katta qarzdamiz. Jon Bentley, Dug Gunn, DoG Makilo'ron, Piter Nelson va Rob Pike qo'lyozmaning birinchi versiyasining deyarli har bir sahifasini aniq so'zlashdi. Biz Alli Aho, Dennis Allisson, hursand Kafdof, Karen Fortg'ang, Deyr Larxanman, Deyv Larxord va Krisni diqqat bilan o'qish kitobi uchun aqlli. Biz Bill Chaviq, Mark Kernigar, Endryu Koeniga, Tom London, Tom London, Towoning kliplari va Piter Vaynbergerdan foydali maslahatlar oldik. Deyv Proderer Ansi standarti tafsilotlari haqida ko'plab savollarga javob berdi. Biz Si \u200b\u200b++ BiNNe tarjimonini bizning dasturlarimizning mahalliy tekshiruvlari uchun keng ishlatamiz va Deyli Kristol bizga so'nggi tekshirish uchun ANSI SI kompilyatorini taqdim etdi. Boy Dreeshler kitob to'plamida yordam berdi. Biz hammaga chin dildan minnatdormiz.

Brian V. Kernigar, Dennis M. Ritti

Birinchi nashrga kirish so'zi

C - universal dasturiy til, ya'ni iboralar, zamonaviy ma'lumotlarni boshqarish mexanizmlari va eng boy operatorlarning boy to'plamini yozish uchun ixcham yo'l bilan. Si na "juda yuqori daraja" yoki na "katta" til emas, u biron bir aniq doirada ishlab chiqilmagan. Biroq, keng imkoniyatlar va ko'p qirralilik tufayli, kuchli tillarga qaraganda ko'p vazifalarni hal qilish uchun qulay va samaraliroq.

Dastlab, C Dennis Ritti tomonidan PDP-11-11 mashinasi uchun UNIX operatsion tizimining yozish vositasi sifatida yaratilgan va ushbu operatsion tizimda amalga oshirilgan. Va operatsion tizim, tizim va tizim, aslida Unix ilova dasturlari (shu jumladan ushbu kitob matni tayyorlaganlar - Bu kitobning ingliz tilidagi asl nusxasini anglatadi. - Eslatma. uchun.) Si deb yozilgan). Si tarkibidagi kompilyatorlar boshqa bir necha turdagi boshqa turlarda, ular orasida 1 milliard / 370, Honeywell 6000 va Interdata 8/32. C ma'lum bir apparat yoki tizimga bog'lanmagan, ammo boshqa mashinalarga tasdiqlangan boshqa mashinalarga o'tkaziladigan dasturlarni yozish juda oson.

Bizning kitobimizning maqsadi - o'quvchilarga Si dasturini o'rganishni o'rganishga yordam berish. Nashrni kiritish kiradi - Adac firqasini iloji boricha tezroq dasturlashni imkon qadar tezroq dasturlashni, shuningdek, tilning asosiy xususiyatlari va yordam qo'llanmasiga imkon beradigan qo'llanmani o'z ichiga oladi. Bu, masalan, oddiy qoidalar ro'yxatiga emas, balki misollarni o'rganish, yozishni va o'rganishga asoslangan. Amaliyotlarimizning deyarli barcha misollari, buzilmagan qismlar emas. Ularning barchasi avtoulovda kitobda berilganidek sinovdan o'tkazildi. Mumkin bo'lgan tildan samarali foydalanishni namoyish etish bilan bir qatorda, foydali yozuvlar uslubi va ularning oqilona dizayni va ularning oqilona dizayni namoyon etishga intildik.

Brian w. kerergon, dennis m. ritchi
C dasturlash tili
Ikkinchi nashr.
AT & Tell Laboratoriyalari
Myurrey Xill, Nyu-Jersi
Prentons Xall PTR, Englewood Cliffs, Nyu-Jersi 07632
B. Kernegan, D. Ritti
STI dasturlash tili
Nashr 3RD, tuzatildi
Ingliz tilidan Quyosh tomonidan tarjima qilish. Starkman
Nevskiy dialekt, Sankt-Peterburg 2001
UDC 681.3.06
BBK 24.4.9
K36.
Ingliz tilidan tarjima. Starkman Quyosh tomonidan tahrirlangan. Starkman.
Kernigar B., Ritchi D.
K36. SI dasturlash tili.\\ Har bir. Ingliz tilidan, 3-chi., ACT. - SPB .: "Nevskiy lahjasi", 2001 yil .: 352 p .: Il.
1988 yilda nashr etilgan Ingliz tilida nashr etilgan Ingliz tilida nashr etilgan "Si" standartini hisobga olgan holda taniqli mualliflar kitobi, shuningdek, barcha tadqiqotlar uchun klassik bo'lib qolmoqda va / yoki ikkala Si va C ++ yordamida. Ushbu kitobning rus tilidagi tarjimasi birinchi marta 1992 yilda tahririyat "Moliya va statistika" tomonidan nashr etilgan va shu vaqtdan beri o'quvchilarga doimiy talabdir.
Ushbu uchinchi rus nashrida tarjima dastlabki bilan qayta jihozlangan bo'lib, so'nggi yillarda belgilangan o'zgarishlarni hisobga olgan holda ba'zi o'zgartirishlar, shuningdek, muallif tomonidan http: // raqamiga izohlash cm.bell-lababs.com/cm/ cs / comple / cooks.html
Dasturchilar va talabalar uchun.
"Moliya va statistika" nashriyot uyi ishtirokida tayyorlangan nashr
ISBN 5-7940-0045-9 © 1998, 1978 yil qo'ng'iroq telefon laboratoriyalari bilan birlashtirilgan
ISBN 0-13-110362-8 (PBK)
1

ISBN 0-13-110370-9 (Eng.) © "Nevskiy lahjasi", 2001 yil
Kirish
C - Universal dasturlash tili. U ushbu tizimda ishlab chiqilganidek, Unix tizimi bilan chambarchas bog'liq, ular ko'pgina ishlaydigan dasturlar C. tomonidan yozilgan. Biroq, til ba'zi bir operatsion tizim yoki mashina bilan bog'lanmagan. Garchi u "Tizim dasturlash tili" deb nomlangan bo'lsa-da, kompilyatorlar va operatsion tizimlar yozish qulay bo'lganligi sababli, bu boshqa profilning katta dasturlarini yozish ham xuddi shunday.
Si Bcpl tilidan SI ko'pgina muhim g'oyalar, uning muallifi Martin Richards. Ta'sir
Si BCPL - Ben Tompson tomonidan PDP-7-da amalga oshirilgan birinchi Unix tizimi uchun Ben Tompson tomonidan ishlab chiqarilgan BcPl.
Bcpl va B - "BestIp" tillari. Ulardan farqli o'laroq, C ma'lumotlar turlarini ta'minlaydi. Asosiy turlar, shuningdek, turli xil o'lchamdagi suzuvchi nuqta bilan sonlar va sonlar. Bundan tashqari, punktlar, massivlar, inshootlar va birlashmalardan lotorlar ma'lumotlari turlari ierarxiyasini olish mumkin. Raqamlar operatorlar va operandalardan hosil bo'ladi. Har qanday ibora, shu jumladan tayinlash va qo'ng'iroq qo'ng'irog'i, ko'rsatmalar bo'lishi mumkin. Penters mashinaning mustaqil manzilini taqdim etadi.
Yaxshi tuzilgan dasturlarda ishlatiladigan asosiy nazorat inshootlari mavjud: kompozitsion ko'rsatmalar ((....)), Shartnomada ( agar-boshqa bo'lsa.), ko'plarga bitta alternativani tanlash ( kalit), tsikllar yuqori qavatli ( vaqt, uchun) va quyidagi chek bilan ( qilmoq.), shuningdek, tsiklni to'xtatish degani kabi ( sindirish).
Natijada funktsiya asosiy turlar, inshootlar, uyushmalar va punktlarning qiymatlarini qaytarishi mumkin. Har qanday funktsiya o'z-o'zidan referatsiyani qoplashga imkon beradi. Qoida tariqasida, mahalliy o'zgaruvchilar - "Avtomatik", I.E. Ular har bir murojaat bilan qayta o'rnatiladi.
Funktsiyalarning ta'riflari bir-biriga kiritilishi mumkin emas, ammo o'zgaruvchan deklaratsiyalar blokli strukturaviy tarzda qurishga ruxsat beriladi. C dasturining funktsiyalari alohida manba fayllarida saqlanishi va mustaqil ravishda tuzilishi mumkin. Funktsiyaga nisbatan o'zgaruvchilar ichki va tashqi bo'lishi mumkin. Ikkinchisi bir xil manba faylida yoki butun dastur ichida mavjud bo'lishi mumkin.
Protrocessing bosqichida makro-tadbir dastur matni va boshqa manba fayllarini va shartli kompilyatsiyani kiritish.
C - nisbatan "past daraja" tili. Biroq, bu uning afzalliklarini umuman kamaytirmaydi, shunchaki Si eng ko'p kompyuterlar, I.E. oynalari, raqamlar va manzillari bilan shug'ullanadi. Ular bilan real mashinalar tomonidan amalga oshiriladigan arifmetik va mantiqiy operatsiyalar yordamida foydalanish mumkin.
Tarkiblar, to'plamlar, ro'yxatlar va massivlar va massivlar kabi kompozit ob'ektlarda to'g'ridan-to'g'ri operatsiyalar mavjud emas. Barcha qatorlar yoki belgilar satrlari bilan boshqariladigan operatsiyalar yo'q,
garchi tuzilmalarga butunlay yagona ob'ektlar sifatida nusxalash mumkin. Tilda xotira ajratish vositalarisiz, statik o'zgaruvchilar va funktsiyalar ichidagi mahalliy o'zgaruvchilar uchun joyni ajratish paytida statik o'zgaruvchilar va stack mexanizmini belgilash imkoniyati mavjud emas. "Gaplar" va "axlat yig'uvchi" yo'q. Va nihoyat, SIda menda I / O vositasi yo'q, ko'rsatmalarni o'qing (o'qing) va yozing
(Yozish) va fayllarga kirish usullari. Bularning barchasi yuqori darajadagi mexanizmlar bo'lib, faqat aniq deb ataladigan funktsiyalar yordamida mavjud. Eng ko'p joriy qilingan tizimlarda ushbu funktsiyalarning oqilona standart to'plamini o'z ichiga oladi.
Shuni ta'kidlash kerakki, C hisob-kitoblarni faqat izchil boshqarishni amalga oshirish vositalarini taqdim etish kerak: sharoitlar, tsikllar, kompozit ko'rsatmalar,
2

subpogrammalar va tarkibida ko'p tarmoqli vositalar, parallel jarayonlar, sinolarni sinxronlashtirish va tashkil etish mavjud emas.
Ro'yxatdan o'tgan mablag'larning yo'qligi jiddiy tuyulishi mumkin ("ikkita belgini taqqoslash uchun chiqadi, funktsiyaga kirishingiz kerakmi?"). Biroq, tilning ixchamligi haqiqiy foyda keltiradi. Si nisbatan kichik bo'lganligi sababli, u qisqacha tavsiflanadi va ular tezda tortib olinishi mumkin. Dasturchi haqiqatan ham u nimani anglatishini, tushunadigan va amalda muntazam ravishda tilning barcha imkoniyatlaridan foydalanadi.
Ko'p yillar davomida Si tilining yagona ta'rifi "CO dasturlash tili" kitobining birinchi nashri edi. 1983 yilda Amerika Milliy standartlari instituti (ANSI) Qo'mitani Si tilining zamonaviy to'liq ta'rifini rivojlantirishga qo'mitani tashkil etadi. Uning faoliyati natijasida 1988 yilda chiqarilgan SI ("Ansi-C" uchun standart bo'lib, ushbu standart qoidalarining aksariyati zamonaviy kompilyatorlarda hisobga olinadi.
Standart dastlabki ma'lumotnomaga asoslangan. Bilan solishtirganda eng so'nggi til Nisbatan kam o'zgardi. Namunaning maqsadlaridan biri ko'p hollarda mavjud dasturlar to'g'ri bo'lib qolishini yoki xatti-harakatlarning o'zgarishi to'g'risida ogohlantiruvchi kompilyatsiyani ta'minlash edi.
Ko'pgina dasturchilar uchun eng muhim o'zgarishlar - bu reklamalarning yangi sintaksisi va funktsiyalar ta'rifi. AD funktsiyasi endi uning dalillarini o'z ichiga oladi va tasvirlab berishi mumkin. Bunga muvofiq, funktsiyaning sintaksisi o'zgargan. qo'shimcha ma'lumot kompilyatorga dalillar nomuvofiqligi bilan bog'liq xatolarni aniqlash uchun katta yordam beradi; Bizning fikrimizcha, bu tilga juda foydali qo'shimcha.
Shuningdek, u bir qator kichik o'zgarishlarni qayd etish kerak. Tilda bir muncha vaqt foydalaniladigan tuzilmalar va ovozlarni berish. Suzuvchi nuqta hisob-kitoblari endi bitta aniqlikka ruxsat beriladi. Arifmetikaning xususiyatlari, ayniqsa imzolanmaganlar uchun. Takomillashtirilgan preprocessor. Dasturchilarning aksariyati bu o'zgarishlar juda kam ta'sir qiladi.
Standartning ikkinchi muhim hissasi - bu ish operatsion tizimining kirish funktsiyalari ko'rsatilgan Sizax kutubxonasida etkazib beriladigan kutubxonaning ta'rifidir.
(masalan, o'qish-yozish fayllari), i / O formatida, izlanishlar sektsiyalari bilan va boshqalarni taqsimlash va boshqalar. Standart sarlavha fayllari to'plami funktsiyalar va ma'lumotlar turlariga yagona kirishni ta'minlaydi. Operatsion tizim bilan aloqa o'rnatishda ushbu kutubxonadan foydalanadigan dasturlar boshqa mashinalarda ishlaydi. Kutubxonani tashkil etuvchi ko'pgina dasturlar Unix tizimining "I / O" kutubxonasining o'xshashligi va o'xshashligini yaratadi. Ushbu kutubxona kitobning birinchi nashrida tasvirlangan va boshqa tizimlarda keng qo'llaniladi. Va bu erda dasturchilar sezilarli farqlarni sezmaydilar. SI tillarining ma'lumotlar va boshqaruv tuzilmalarining turlari mavjud bo'lgan eng mashaqqatli, ijroiya tizimi (ish vaqti kutubxonasi) buyrug'i bilan qo'llab-quvvatlanadi, bu esa dasturlarni mustaqil boshlaydi va bajarilishini ta'minlaydi, bu juda kichikdir. Kutubxona funktsiyalariga murojaatlar Dasturchining o'zi (kompilyator emas), agar xohlasangiz, ularni boshqalar bilan almashtirish mumkin. Si-da yozilgan deyarli SI-da yozilgan bo'lsa, agar ular operatsion tizimda yashiringan qismlarga tegmasalar, boshqa mashinalarga pul o'tkazmalari.
C ko'plab mashinalarning apparat xususiyatlariga mos keladi, ammo bu ma'lum bir mashina arxitekturasi bilan bog'liq emas. Ba'zi tartib-intizomni ko'rsating, siz ko'chma dasturlarni osongina yozishingiz mumkin, I.E. Har xil mashinalarda ishlashi mumkin.
Ushbu standart bag'rikenglikning aniq tavsifi beradi, dastur ishlaydigan mashinaning xususiyatlarini aks ettiruvchi konstantalar to'plamidan foydalangan holda.
C - "qat'iy yozilgan" tili emas, balki uning rivojlanishi jarayonida turlarni boshqarish kuchaytirildi. Si birinchi versiyasida hech bo'lmaganda tasdiqlamadi, ammo nazoratsiz belgilar almashinuvi va katta shikoyatlarga sabab bo'ldi, ammo bu juda uzoq taqiqlangan. Standart ma'lumotlariga ko'ra, yaxshi kompilyatorlarda amalga oshiriladigan o'zgarishlarning aniq deklaratsiyasi yoki aniqlanganligini talabchan ravishda ajratishni talab qiladi. Ushbu yo'nalishdagi yangi funktsiyalar deklaratsiyasi yana bir qadamdir. Mana, hozirda turdagi xatolarning ko'pchiligini ogohlantiradi va avtomatik ravishda konversiya o'tkazmaydi
3

bu mos kelmaydigan tur. Biroq, C ning asosiy falsafasi - dasturchilar nima qilayotganlarini bilishadi; Til faqat ularning niyatlariga aniq ko'rsatmalar talab qiladi.
C, har qanday boshqa dasturlash tili singari, kamchiliklardan xoli emas. Ba'zi operatorlarning katta qismi umuman qabul qilinmaydi, ba'zi bir sintaktik dizaynlar yaxshiroq bo'lishi mumkin. Biroq, shuni ma'lum, Si keng sinf vazifasi uchun juda samarali va ifodali tildir.
Kitob quyidagi tuzilishga ega.
1-bob
Si tilining asosiy vositasi haqida umumiy ma'lumot. Uning tayinlanishi - dasturxonni iloji boricha tezroq boshlash uchun iloji boricha tezroq rag'batlantirish uchun, biz bunga aminmiz yagona yo'li Yangi tilda dasturlarni yozish - bu dasturlarni yozish. Kitobning bu qismi dasturlashning asosiy elementlari bo'yicha bilimlarning mavjudligini o'z ichiga oladi. Kompyuter, kompilyatsiya yoki n \u003d n + 1 shaklining ifodasini nimani anglatishi haqida hech qanday izoh berilmaydi. Biz ko'rsatishi mumkin bo'lgan joyni sinab ko'rganimizda foydali qabulxonalar Dasturlash, ushbu kitob ma'lumotlar tuzilmalari va algoritmlar bilan ishlash uchun mo'ljallanmagan: agar u nima urg'u berish kerakligini tanlash kerak bo'lsa, biz tilga e'tibor berishni afzal ko'ramiz.
2-6 boblarda, turli tillarda turli tillar va 1-bobga qaraganda ancha aniqroq muhokama qilinadi; Shu bilan birga, u erimagan bo'laklarga emas, balki to'ldirilgan dasturlar, namunalarga e'tibor qaratilmoqda.
2-bob.
Operator va iboralar bilan asosiy ma'lumotlar turlarini joriy etadi. 3-bob.
Hisoblash ketma-ketligini boshqarish vositalarini ko'rib chiqing: agar-
boshqa., kalit, vaqt, uchun va hokazo. 4-bob.
Dasturning funktsiyalari va tuzilishi, tashqi o'zgaruvchilar, dasturni bir nechta manbalar va boshqalarga ajratish, dasturni bir nechta manba va boshqalarga ajratish haqida gapiramiz. 5-bob.
Ko'rsatkichlar va maqsadli arifmetika muhokama qilinadi.
6-bob.
Tuzilmalar va birlashmalar bilan shug'ullanadi.
7-bob.
Operatsion tizim bilan umumiy interfeysni taqdim etadigan standart kutubxona tasvirlangan. Ushbu kutubxona ANSI Standard, boshqacha aytganda, u mavjud bo'lgan barcha mashinalarda, ularda biron bir o'zgartirishlarsiz mahsulotlar va boshqa imkoniyatlardan foydalanadigan dasturlar mavjud bo'lgan barcha mashinalarda bo'lishi kerak boshqasiga bitta mashina.
8-bob.
Unda SI va Unix operatsion tizimidagi dasturlar o'rtasidagi interfeysning tavsifi mavjud, xususan I / O tavsifi, fayl tizimi va xotira taqsimoti. Ushbu bobning ba'zi xatboshilar Unix tizimining o'ziga xos xususiyatlari aks ettirilgan bo'lsa-da, boshqa tizimlardan foydalanadigan dasturchilar ularda juda ko'p foydali ma'lumotlarni topadilar, shu jumladan standart kutubxonaning versiyalaridan biri amalga oshiriladi va ba'zi dasturlarga bardoshlik takliflar.
A ilova
Bu ma'lumotnoma. SI tilining sintaksisi va semantika ta'rifi Ansi standartining rasmiy hujjatida keltirilgan. Ikkinchidan, aksariyat narsalarning aksariyati kompilyator ishlab chiqaruvchilariga mos keladi. Bizning katalogimiz stantanani yoqadigan podaonlik huquqiy uslubiga murojaat qilmasdan ko'proq siqilgan tilni aniqlaydi.
B Ilova B ilova
- Standart kutubxona tarkibidagi xulosa va uni amalga oshiruvchilarga qaraganda foydalanuvchilarga mo'ljallangan. C. ilovasida
Tilning birinchi versiyasidan farqlar ro'y bermoqda. Ammo shubhali holatlarda, tildagi yakuniy sudya siz foydalanadigan standart va kompilyator bo'lib qoladi.
1-bob. Tillarning sharhi
1.1 Keling, ehtimol
1.2 o'zgaruvchilar va arifmetik iboralar
1.3 ko'rsatmalar
uchun
1.4 Ajomalar
4

1.5 Korxonaning belgilari
1.5.1 nusxa ko'chirish fayli
1.5.2 Hisoblash belgilari
1.5.3 Hisoblash satri
1.5.4 deb hisoblash so'zlari
1.6 qatorlar
1.7 funktsiyalari
1.8 Dalillar. Qiymati bo'yicha qo'ng'iroq
1.9 ramziy massivlar
1.10 EREKTIKA o'zgaruvchilar va ko'lami
2-bob. Turlar, operatorlar va iboralar
2.1 O'zgaruvchilar nomlari
2.2 Ma'lumotlar turlari va o'lchamlari
2.3
2.4 reklama
2.5 arifmetik operatorlar
2.6 Qiyomat operatorlari va mantiqiy operatorlar
2.7 Turi o'zgartirish
2.8 o'sish va kamaytirish operatorlari
2.9 ni urish
2.10 Operatorlar va tayinlash iboralari
2.11 shartli ifodalar
2.12. Hisob-kitoblarning ustuvorligi va ketma-ketligi
3-bob. Boshqarish
3.1 Ko'rsatmalar va bloklar
3.2 Dizayn
agar-boshqa bo'lsa.
3.3 Dizayn
boshqa bo'lsa.
3.4
kalit
3.5 tsikl
vaqt
va
Uchun
3.6 tsikl
qilmoq.
- Vaqt
3.7 Ko'rsatmalar
sindirish
va
Davom eting.
3.8 O'qitish
goto.
Va teglar
4-bob. Dasturning vazifalari va tuzilishi
4.1 Funktsional funktsional ma'lumotlar
4.2 Noqonuniy bo'lmagan qiymatlarni qaytarish funktsiyalari
4.3 tashqi o'zgaruvchilar
4.4 Ko'rish doirasi
4.5 sarlavha fayllari
4.6 statik o'zgaruvchilar
4.7 Ro'yxatdan o'tish o'zgaruvchilar
4.8 blok tuzilishi
4.9 boshlang'ichizatsiya
4.10 rekursiya
4.11 Si Til preprosicer
4.11.1 yoqish fayl
5

4.11.2 Makro-tartiblash
4.11.3 shartli kompilyatsiya
5-bob. Belgilar va massivlar
5.1 Belgilar va manzillar
5.2 vazifalar va funktsiyalarning dalillari
5.3 punktlar va qatorlar
5.4 manzilga yo'naltirilgan arifmetika
5.5 ramziy funktsiya vazifalari
5.6 Adacter massasi, ko'rsatkichlar bo'yicha ko'rsatmalar
5.7 Ko'p o'lchovli massivlar
5.8 punktlar qatorlarini ishga tushirish
5,9 Ko'p o'lchovli massivlarga qarshi
5.10 buyruq satrining argumenti
Funktsiyalar uchun 5.11 punkti
5.12 Muvaffaqiyatli e'lonlar
6-BOB. STORTURATLAR
6.1 Tuzilmalar haqida asosiy ma'lumotlar
6.2 Tuzilmalar va funktsiyalar
6.3 Sinovlar qatorlari
6.4 inshootlar bo'yicha ko'rsatmalar
6.5 Sizning o'zingizga amal qiladigan tuzilma
6.6 Jadvallarni ko'ring
6.7 TARTIBA
6.8 Uyushma
6.9 bitli maydonlar
7-bob. Enter va yakunlash
7.1 Standart I / O
7.2 rasmiy xulosa (
printf.
7.3 O'zgaruvchan uzunlikdagi dalillar ro'yxati
7.4 rasmiy kiritish (
skanf.
7.5 Kirish fayllari
7.6 Xatolarni boshqarish (
standr.
va
CHIQISH
7.7 Chop etish
7.8 Boshqa kutubxona funktsiyalari
7.8.1 qatorlar bilan operatsiyalar
7.8.2 belgisi sinfini tahlil qilish va belgilash
7.8.3 funktsiyasi
nIMA.
7.8.4 Operatsion tizim buyruqlarini bajarish
7.8.5 Xotiralarni boshqarish
7.8.6 Matematik funktsiyalar
7.8.7 tasodifiy raqam generator
6

8-bob. Unix tizimi bilan interfeys
8.1 Fayl nomlari
8.2 pastki i / o daraja (o'qish va yozish)
8.3 Tizim qo'ng'iroqlari ochilib, yarating, yoping
8.4 O'zboshimchalik bilan kirish (Lseek)
8.5 misol. Fopen va Getc funktsiyalarini amalga oshirish
8.6 Misol. Kataloglarni chop eting
8.7 misol. Xotira Discenserer
AW A. Ma'lumot qo'llanmasi
A1. Kirish
A2. Lug'at to'g'risida kelishuv
A2.1. Leksemes (
tokenlar.
A2.2. Sharh
A2.3. Identifikatorlar
A2.4. Kalit so'zlar
A2.5. Doimiy
A2.5.1. Butun konstantalar
A2.5.2. Ramziy konstitutsiya
A2.5.3. Suzuvchi nuqta konstantlari
A2.5.4. Konstantalarni o'tkazish
A2.6. Satrlar soni
A3. Sintaksisning notari
A4. Identifikatorlarni anglatadi
A4.1. Xotira sinfi
A4.2. Asosiy turlar
A4.3. Derivativlar
A4.4. Saralash turi
A5. Ob'ektlar va lvalues.
A6. Konversiya
A6.1. Butun sonni ko'paytirish
A6.2. Aqlli o'zgarishlar
A6.3. Butun va suzuvchi nuqta
A6.4. Suzuvchi nuqta turlari
A6.5. Arifmetik o'zgarishlar
A6.6. Ko'rsatkichlar va butun son
A6.7. Bir tur
bo'shliq.
A6.8. Ishora qiladi
bo'shliq.
A7. Iboralar
A7.1. Ko'rsatgichni yaratish
A7.2. Asosiy iboralar
A7.3. Postfix iboralar
A7.3.1. Massiv elementlariga murojaat qilish
A7.3.2. Qo'ng'iroq funktsiyasi
A7.3.3. Tuzilishlarga murojaat qilish
7

A7.3.4. Postfiksning o'sishi va kamaytirish operatorlari
A7.4. Uyusher operatorlari
A7.4.1. Prefiksning o'sishi va pasayishi operatorlari
A7.4.2. Operator manzilni qabul qiladi
A7.4.3. Bilvosita kirish operatori
A7.4.4. Operator unbari plyus
A7.4.5. Operator birjadan tashqari minus
A7.4.6. Kaltaklangan rad etish operatori
A7.4.7. Operator mantiqiy inkor
A7.4.8. O'lchamini aniqlash operatori
katta
A7.5. Qisqartirish operatori
A7.6. Murakkab operatorlar
A7.7. Qo'shimcha operatorlar
A7.8. Siljish operatorlari
A7.9. Aloqa operatorlari
A7.10. Operatorlar tengligi
A7.11. Operator kaltaklangan
Va
A7.12. Buzilganligi operatori
Yoki
A7.13. Operator kaltaklangan
Yoki
A7.14. Operator mantiqiy
Va
A7.15. Operator mantiqiy
Yoki
A7.16. Shartli operatori
A7.17. Tayinlash iboralari
A7.18. Operator Vergul
A7.19. Doimiy ifodalar
A8. reklama
A8.1. Xotira sinfi tartibli vositalari
A8.2. Typasits turlari
A8.3. Tuzilishlar va birlashmalarning tasniflanadi
A8.4. Ro'yxat
A8.5. Tahlilchilar
A8.6. E'lonlar nimani anglatadi
A8.6.1. Ko'rsatkichlar
A8.6.2. MassaDlar bo'limlari
A8.6.3. Funktsiyalarni joylashtirish
A8.7. Boshlang'ichizatsiya
A8.8. Ismlarni kiriting
A8.9. Reklama
terdedef.
A8.10. Tenglik turlari
A9. Ko'rsatmalar
A9.1. Belgilangan ko'rsatmalar
A9.2. Ko'rsatma
A9.3. Kompozitr
A9.4. Tanlash bo'yicha ko'rsatmalar
A9.5. Tsiklik ko'rsatmalar
A9.6. O'tish bo'yicha ko'rsatmalar
A10. Tashqi e'lonlar
A10.1. Funktsiyani aniqlash
A10.2. Tashqi e'lonlar
8

1978 yilda nashr etilgan paytdan boshlab, kompyuterlar dunyosida "Shunday qilib, dasturlash tili" kitobi inqilob bo'ldi. Katta avtoulovlar yanada ko'proq bo'lib qoldi va shaxsiy kompyuterning imkoniyatlari endi o'n yoshli yirik avtomobillarning imkoniyatlari bilan taqqoslanadi. Bu vaqt davomida Si tili ham o'zgargan bo'lsa ham, ham o'zgargan; SI-dan foydalanish sohasidagi samaragida u Unix operatsion tizimining asbobqi sifatida uning boshlang'ich maqsadi sifatida.

O'zgarish yillari davomida jamlangan jamg'armalarning ko'payishi, ilgari bu tilni loyihalashda ishtirok etmaydigan ishlab chiqaruvchilarning tuzuvchilari tomonidan tuzilgan - bularning barchasi aniqroq va javob berish uchun rag'batlantirgan kitobning birinchi nashriga nisbatan tilni aniqlash. 1983 yilda Amerika Milliy standartlari instituti (Amerika Milliy standartlari instituti - ANDI) Qo'mita tuzdi, bunda gol "SI tilining aniq va mustaqil ta'rifini" to'liq saqlab qolish uchun qo'ydi. Ushbu qo'mitaning ishi natijasi va SI tilining Ansi standarti paydo bo'ldi.

Standart birinchi nashrda keltirilgan til vositalarini shakllantiradi, ammo, masalan, tuzilmalarni va uzatuvchi sifatida tavsiflanmagan. U tanishtiradi yangi tur Qo'ng'iroqlar qo'ng'iroqlarining turg'unligini aniqlash uchun funktsiyalarning tavsifi ularning ta'rifi bilan; I / O funktsiyalari funktsiyalari, xotiralarni boshqarish, belgilar va boshqa funktsiyalar bilan ishlaydigan standart kutubxonani belgilaydi; Noma'lumotning dastlabki ta'rifida bo'lgan semantikani belgilaydi va nimada mashinaning bog'liqligi bo'lganligini aniq ajratib turadi.

"SI dasturlash tilini dasturlash" kitobining ikkinchi nashrida SI versiyasi Ansi standarti sifatida qabul qilingan. Biz uning o'zgarishiga duch kelgan joylarni eslab, yana tilni tasvirlashga qaror qildik. Aksariyat paragraflarda bu sezilarli o'zgarishlar keltirmadi, eng muhim farqlar yangi shakl Funktsiya tavsifi va ta'riflari. Shuni ta'kidlash kerakki, zamonaviy kompilyatorlar allaqachon standartning katta qismini qo'llab-quvvatlagan.

Biz birinchi nashrning qisqarishini saqlab qolishga harakat qildik. Si - bu kichik til va uni katta kitob tasvirlash talab qilinmaydi. Yangi tahrirda, eng muhim vositalar tavsifi, SI dasturlashda markaziy o'rinni egallagan ko'rsatkichlar yaxshilanadi; Eski misollar yaxshilanadi va ba'zi boblarga yangi bo'lim qo'shildi. Shunday qilib, murakkab reklamalarning misollar sharhini kuchaytirish maqsadida, reklamalarni moslashtirish og'zaki tavsiflarga va orqasiga kiritilgan. Ilgari bo'lgani kabi, barcha misollar to'g'ridan-to'g'ri foydalaniladigan mashina shaklida yozilgan matnlarda sinovdan o'tkazildi.

Ilova - bu ma'lumotli qo'llanma, ammo standart emas. Unda biz eng muhim minimal sahifalarni kiritishga harakat qildik. Rejaga ko'ra, ushbu ilova foydalanuvchi dasturchisi tomonidan osongina o'qish kerak: kompilyator ishlab chiqaruvchilari uchun standart til ta'rifi bo'lishi kerak. B Ilovada standart kutubxonaning qobiliyati ko'rsatilgan. Shuningdek, u dasturchilar uchun dasturlar kitobi, ammo kompilyator ishlab chiqaruvchilar uchun emas. Ilova C tarkibida SI tilining dastlabki versiyasidan ko'rsatilgan farqlarning qisqacha ro'yxatini taqdim etadi.

Birinchi nashrga kirish so'zida biz "Si bilan qanchalik ko'p ishlayotganingizni aytdik, shunchalik qulay bo'ladi". Bu taassurot qoldi va o'n yil davomida u bilan ishlashdan keyin. Umid qilamizki, ushbu kitob sizga Si-ni o'rganishga yordam beradi va undan muvaffaqiyatli foydalanmoqda.

Biz kitobning ikkinchi nashrini chiqarishda bizga yordam bergan do'stlarimizga katta qarzdamiz. Jon Bentley, Dug Gunn, DoG Makilo'ron, Piter Nelson va Rob Pike qo'lyozmaning birinchi versiyasining deyarli har bir sahifasini aniq so'zlashdi. Biz Alli Aho, Dennis Allisson, hursand Kafdof, Karen Fortg'ang, Deyr Larxanman, Deyv Larxord va Krisni diqqat bilan o'qish kitobi uchun aqlli. Bizda bor foydali maslahatlar Bill Cesevik, Mark Kernigar, Andryu Koeniga, ROBIN LONE, Toma London, Jim Ridza, Tomudoning kliplari va Piter Vaynerger. Deyv Proderer Ansi standarti tafsilotlari haqida ko'plab savollarga javob berdi. Biz Si \u200b\u200b++ BiNNe tarjimonini bizning dasturlarimizning mahalliy tekshiruvlari uchun keng ishlatamiz va Deyli Kristol bizga so'nggi tekshirish uchun ANSI SI kompilyatorini taqdim etdi. Boy Dreeshler kitob to'plamida yordam berdi. Biz hammaga chin dildan minnatdormiz.

Brian V. Kernigar, Dennis M. Ritti

Birinchi nashrga kirish so'zi

C - universal dasturiy til, ya'ni iboralar, zamonaviy ma'lumotlarni boshqarish mexanizmlari va eng boy operatorlarning boy to'plamini yozish uchun ixcham yo'l bilan. Si na "juda yuqori daraja" yoki na "katta" til emas, u biron bir aniq doirada ishlab chiqilmagan. Biroq, keng imkoniyatlar va ko'p qirralilik tufayli, kuchli tillarga qaraganda ko'p vazifalarni hal qilish uchun qulay va samaraliroq.

Dastlab, C Dennis Ritti tomonidan PDP-11-11 mashinasi uchun UNIX operatsion tizimining yozish vositasi sifatida yaratilgan va ushbu operatsion tizimda amalga oshirilgan. Va operatsion tizimva Si kompilyator, va asosan UNIX ilova dasturlari (shu jumladan ushbu kitob matni tayyorlaganlar - Ushbu kitobning asl nusxasini anglatadi ingliz tili. - Eslatma. uchun.) Si deb yozilgan). Si tarkibidagi kompilyatorlar boshqa bir necha turdagi boshqa turlarda, ular orasida 1 milliard / 370, Honeywell 6000 va Interdata 8/32. C ma'lum bir apparat yoki tizimga bog'lanmagan, ammo boshqa mashinalarga tasdiqlangan boshqa mashinalarga o'tkaziladigan dasturlarni yozish juda oson.