Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ. ИзданиС 3-Π΅, исправлСнноС». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 3

Автор Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½

Π’ Π³Π»Π°Π²Π΅ 7 описана стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΎΠ±Ρ‰ΠΈΠΉ интСрфСйс с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡƒΠ·Π°ΠΊΠΎΠ½Π΅Π½Π° Π² качСствС стандарта ANSI, ΠΈΠ½Π°Ρ‡Π΅ говоря, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ прСдставлСна Π½Π° всСх ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, Π³Π΄Π΅ сущСствуСт Π‘ΠΈ, благодаря Ρ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ с ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

Π“Π»Π°Π²Π° 8 содСрТит описаниС интСрфСйса ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° Π‘ΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой UNIX, Π² частности описаниС Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ распрСдСлСния памяти. Π₯отя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Ρ‹ этой Π³Π»Π°Π²Ρ‹ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ спСцифику систСмы UNIX, программисты, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами, всС ΠΆΠ΅ Π½Π°ΠΉΠ΄ΡƒΡ‚ Π² Π½ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… свСдСний, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ взгляд Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ рСализуСтся ΠΎΠ΄Π½Π° ΠΈΠ· вСрсий стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдлоТСния ΠΏΠΎ пСрСносимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ A являСтся справочником ΠΏΠΎ языку. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса ΠΈ сСмантики языка Π‘ΠΈ содСрТится Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ стандарта ANSI. ПослСдний, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π±ΠΎΠ»Π΅Π΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ компилятора. Наш справочник опрСдСляСт язык Π±ΠΎΠ»Π΅Π΅ сТато, Π½Π΅ прибСгая ΠΊ ΠΏΠ΅Π΄Π°Π½Ρ‚ΠΈΡ‡Π½ΠΎ ΡŽΡ€ΠΈΠ΄ΠΈΡ‡Π΅ΡΠΊΠΎΠΌΡƒ ΡΡ‚ΠΈΠ»ΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стандарт. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ B - сводка ΠΏΠΎ содСрТимому стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° скорСС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Ρ‡Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌ. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ C приводится ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии языка. Π’ ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΡΡƒΠ΄ΡŒΠ΅ΠΉ ΠΏΠΎ языку остаСтся стандарт ΠΈ компилятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ.

Π“Π»Π°Π²Π° 1. ΠžΠ±Π·ΠΎΡ€ языка

НачнСм с быстрого ознакомлСния с языком Π‘ΠΈ. Наша Ρ†Π΅Π»ΡŒ - ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… сущСствСнныС элСмСнты языка, Π½Π΅ вдаваясь Π² ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ, Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ· Π½ΠΈΡ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π½Π΅ стрСмимся ΠΊ ΠΏΠΎΠ»Π½ΠΎΡ‚Π΅ ΠΈ Π΄Π°ΠΆΠ΅ точности (Π·Π°Π±ΠΎΡ‚ΡΡΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎ коррСктности ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²). Нам Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС подвСсти вас ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ смоТСтС ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° основах: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ константах, Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ΅, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ вычислСний, функциях ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ Π²Π²ΠΎΠ΄Π΅-Π²Ρ‹Π²ΠΎΠ΄Π΅. Π’ настоящСй Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅ΠΌ Ρ‚Π΅Ρ… срСдств языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ написании Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, структур, большой части Π±ΠΎΠ³Π°Ρ‚ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… инструкций ΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ свои нСдостатки. НаиболСС сущСствСнный ΠΈΠ· Π½ΠΈΡ… состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ΅ свойство языка Π½Π΅ описываСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, ΠΈ подобная Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΎΡΠΏΡ€ΠΈΡΡ‚ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ силу ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° ΠΏΠΎΠ΄Π°Ρ‡ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вся ΠΌΠΎΡ‰ΡŒ языка, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΎΠ½ΠΈ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΈ элСгантны, ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ. ΠœΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΏΠΎ возмоТности ΡΠΌΡΠ³Ρ‡ΠΈΡ‚ΡŒ эти эффСкты, Π½ΠΎ считаСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΎ Π½ΠΈΡ…. Π”Ρ€ΡƒΠ³ΠΎΠΉ нСдостаток Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π°ΠΌ придСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ. ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ польза ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ прСвысит Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΠΈ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Π’ любом случаС ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡƒΠΌΠ΅Ρ‚ΡŒ ΡΠΊΡΡ‚Ρ€Π°ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹ Π½Π° свои программистскиС Π½ΡƒΠΆΠ΄Ρ‹. Новичкам ΠΆΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ написаниСм собствСнных ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. И Ρ‚Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ наши Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ эту Π³Π»Π°Π²Ρƒ ΠΊΠ°ΠΊ "каркас", Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π»Π΅Π΅, начиная с Π³Π»Π°Π²Ρ‹ 2, Π±ΡƒΠ΄ΡƒΡ‚ "Π½Π°Π²Π΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ" элСмСнты языка.

1.1 НачнСм, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ

ЕдинствСнный способ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык программирования - это ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ любого языка ΠΏΠ΅Ρ€Π²ΠΎΠΉ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

ΠΠ°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ слова Hello, world

Π’ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ прСпятствиС, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡƒΠΌΠ΅Ρ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π΅Π³ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ, Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΎΠ²Π»Π°Π΄Π΅Π΅Ρ‚Π΅ этим, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ окаТСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто. Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰Π°Ρ "Hello, world", выглядит Ρ‚Π°ΠΊ:

#include β€Ήstdio.hβ€Ί

main()

{

 printf("Hello, world\n");

}

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, зависит ΠΎΡ‚ систСмы, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. Π’Π°ΠΊ, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС UNIX Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΡΡ символами ".c", Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ„Π°ΠΉΠ»Π΅ hello.c, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ компилируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

cc hello.c

Если Π²Ρ‹ всС сдСлали ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ - Π½Π΅ пропустили Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΠΊΠ° ΠΈ Π½Π΅ допустили орфографичСских ошибок, Ρ‚ΠΎ компиляция ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ "ΠΌΠΎΠ»Ρ‡Π°" ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ», Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊ исполнСнию ΠΈ Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ a.out. Если Π²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ запуститС этот Ρ„Π°ΠΉΠ» Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

a.out

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚

Hello, world

Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах ΠΏΡ€Π°Π²ΠΈΠ»Π° запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‹ΠΌΠΈ; Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π½ΠΈΡ…, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ со спСциалистами.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ поясним Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘ΠΈ, ΠΊΠ°ΠΊΠΈΡ… Π±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ½Π° Π½ΠΈ Π±Ρ‹Π»Π°, состоит ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ содСрТат инструкции, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ вычислСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ хранят значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² процСссС этих вычислСний. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π‘ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° ΠΈΠ»ΠΈ Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Паскаля. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° - это функция с ΠΈΠΌΠ΅Π½Π΅ΠΌ main. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹ Π²ΠΎΠ»ΡŒΠ½Ρ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° для своих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ "main" - особоС имя: любая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ свои вычислСния с ΠΏΠ΅Ρ€Π²ΠΎΠΉ инструкции Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ main для выполнСния своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ услугами Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ; ΠΎΠ΄Π½ΠΈ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΈΡˆΡƒΡ‚ΡΡ самим программистом, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ бСрутся Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² Π΅Π³ΠΎ распоряТСнии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠŸΠ΅Ρ€Π²Π°Ρ строка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

#include β€Ήstdio.hβ€Ί

сообщаСт компилятору, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Π­Ρ‚Π° строка встрСчаСтся Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… исходных Ρ„Π°ΠΉΠ»ΠΎΠ² Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° описана Π² Π³Π»Π°Π²Π΅ 7 ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’.

Один ΠΈΠ· способов ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ функциями состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функция ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅ΠΉ список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎΡ‚ список бСрСтся Π² скобки ΠΈ помСщаСтся послС ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ main ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ функция, которая Π½Π΅ ΠΆΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ пустым списком ().

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘ΠΈ:

#include β€Ήstdio.hβ€Ί Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. main() ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ main, Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². { Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ main Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. printf("Hello, world\n"); Ѐункция main Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ printf для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов; \n - символ Π½ΠΎΠ²ΠΎΠΉ строки. } Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки {}. Ѐункция main содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ printf("Hello, world\n");

Ѐункция вызываСтся ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ, Π² скобках, указываСтся список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, привСдСнная Π²Ρ‹ΡˆΠ΅ строка - это Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ printf с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ "Hello, world\n". Ѐункция printf - это библиотСчная функция, которая Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡƒΡŽ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, такая ΠΊΠ°ΠΊ "Hello, world\n", называСтся строкой символов, ΠΈΠ»ΠΈ строковой константой. Пока Ρ‡Ρ‚ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для printf ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки символов.

Π’ Π‘ΠΈ комбинация \n Π²Π½ΡƒΡ‚Ρ€ΠΈ строки символов ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ символ Π½ΠΎΠ²ΠΎΠΉ строки ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки. Если Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ \n (стоит ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ), Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ, Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ² ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ, машина Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку. Π‘ΠΈΠΌΠ²ΠΎΠ» Π½ΠΎΠ²ΠΎΠΉ строки Π² тСкстовый Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ printf слСдуСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Если Π²Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

printf("Hello, world

");

компилятор выдаст сообщСниС ΠΎΠ± ошибкС.

Π‘ΠΈΠΌΠ²ΠΎΠ» Π½ΠΎΠ²ΠΎΠΉ строки Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ вставляСтся автоматичСски, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Ρƒ строку ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΏΠΎ шагам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ printf. ΠΠ°ΡˆΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ:

#include β€Ήstdio.hβ€Ί


main()

{

 printf("Hello, ");

 printf("world");

 printf('\n');

}

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Π΅ выполнСния Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π° Ρ‚Π° ΠΆΠ΅ строка, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅.