ΠΠ΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ (ΠΏΠ°ΠΌΡΡΡ) ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΡΠ΄Π΅Π»Π΅Π½Π° ΠΎΡ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΡΠ»ΠΈ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΏΠ°ΠΌΡΡΡ, ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ; ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. (Π ΡΠ΅Π»ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΡΠ°Π²ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, Π·Π°ΠΏΡΡΡΠΈΠ²ΡΠΈΠΌΠΈ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.)
Π’Π΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ β ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² (ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ '
/
cd <i>someplace</i>
ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ, Π²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Ρ ΡΡΠ΅ΠΌΡ ΡΠΆΠ΅ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ: ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΡΠΎ ΠΌΠ΅ΡΡΠ°, ΠΎΡΠΊΡΠ΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π²Π²ΠΎΠ΄, ΠΊΡΠ΄Π° Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΈ ΠΊΡΠ΄Π° Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠ° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π°Π·Π½Π°ΡΠ°ΡΡΡΡ. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²; ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΅ΡΡΡ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΡΡΠΎΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ Π² Π²ΠΈΠ΄Π΅ '
ΠΈΠΌΡ=Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π°ΡΡΠΈΠ±ΡΡΡ (ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ, PID ΠΈ Ρ.Π΄.) ΠΎΡΡΠ°ΡΡΡΡ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌΠΈ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Β«Π·Π°ΠΏΡΡΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°Β» ΠΎΡ Β«Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°Β» ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Unix. ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΡΡΠΈ Π΄Π²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ²Π»ΡΡΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΈ ΠΈΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
1.2.1. ΠΠ°Π½Π°Π»Ρ: ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
ΠΠ΅Π· ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ, Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ('
|
ΠΠ°ΠΊ ΡΠ΄ΡΠΎ ΡΠΊΡΡΠ²Π°Π΅Ρ Β«ΠΌΠ°Π³ΠΈΡΒ» Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ², Π·Π°ΡΡΠ°Π²Π»ΡΡ ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°ΠΉΠ»Π°ΠΌ, ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΠ½ΠΎ ΠΏΡΠΎΠ΄Π΅Π»ΡΠ²Π°Π΅Ρ ΡΡΡ ΡΠ°Π±ΠΎΡΡ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΌΠ΅ΡΡ ΠΏΠΎ Π·Π°Π΄Π΅ΡΠΆΠΊΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΊΠ°Π½Π°Π» ΠΏΡΠΈ Π΅Π³ΠΎ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠ΅ ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΊΠ°Π½Π°Π»Π°ΠΌ ΡΠ»ΡΠΆΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ; Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΏΡΡΡ-ΡΠ°ΠΊΠΈ ΠΎΠ±ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠ°Π±ΠΎΡΡ: Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠΎΠ±ΡΡ ΡΠ»ΡΡΠ°Π΅Π² Π΄Π»Ρ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
1.3. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π‘ ΠΏΡΠΎΡΠΈΠ² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π‘
Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ Π»Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π‘ Π΄Π΅-ΡΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ ΠΡΠ°ΠΉΠ°Π½Π° ΠΠ΅ΡΠ½ΠΈΠ³Π°Π½Π° ΠΈ ΠΠ΅Π½Π½ΠΈΡΠ° Π ΠΈΡΠΈ Β«Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘Β» (Brian Kernighan & Dennis Ritchie, The Π‘ Programming Language). ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΎΠΏΠΈΡΠ°Π»Π° Π‘, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π» Π΄Π»Ρ Unix ΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΠΈ Bell Labs. ΠΠ° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Β«ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π‘Β», Ρ ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Β«Π‘ ΠΠ΅ΡΠ½ΠΈΠ³Π°Π½Π° ΠΈ Π ΠΈΡΠΈΒ» (Β«K&R Π‘Β»), ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ Π΄Π²ΡΡ Π°Π²ΡΠΎΡΠΎΠ² ΠΊΠ½ΠΈΠ³ΠΈ. (ΠΠ΅Π½Π½ΠΈΡ Π ΠΈΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» Π‘.)
Π‘ΡΠ°Π½Π΄Π°ΡΡ ISO Π‘ 1990 Π³. [17] ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π‘ (ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ
printf()
fopen()
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘, C++ ΠΈ Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠΎΡΠΎΡΠΈΠΏ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΡΠΈΡΠ»ΠΎ ΠΈ ΡΠΈΠΏ Π΅Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². Π‘ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² Π² ΡΠΎΡΠΊΠ΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅
extern int myfunc(struct my_struct *a,
Β struct my_struct *b, double c, int d);
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
int myfunc(struct my_struct *a,
Β struct my_struct *b, double c, int d) {
Β ...
}
...
struct my_struct s, t;
int j;
...
/* ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, Π³Π΄Π΅-ΡΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅: */
j = my_func(&s, &t, 3.1415, 42);
ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ²:
j = my_func(-1, -2, 0);
/* ΠΡΠΈΠ±ΠΎΡΠ½ΡΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈ ΡΠΈΠΏΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² */
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎΡ Π²ΡΠ·ΠΎΠ² ΠΊΠ°ΠΊ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ Π‘ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²:
extern int myfunc();
/* ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ int, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Ρ */
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅Π»ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΏΠ° int ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΠΈ Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ int, Π΅Π³ΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ:
myfunc(a, b, Ρ, d); /* ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΏ int*/
struct my_struct *Π°, *b;
double Ρ;
/* ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° d*/
{
Β ...
}
Π Π°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ½ΠΎΠ²Π° ΡΠΎΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ: '
j = my_func(-1, -2 , 0);
my_func()
lint
ΠΠΎΡΡΠΎΠΌΡ, Ρ ΠΎΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π±ΡΠ»ΠΈ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΡΡ ΠΎΠ΄ΠΎΠΌ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π°ΠΆΠ½ΠΎΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π±Π΅Π· Π½Π΅Π΅, ΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ½Π° Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² ΡΠ·ΡΠΊ.
ΠΠ»Ρ Π‘ ΡΡΠ°Π½Π΄Π°ΡΡΠ° 1990 Π³. ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅, ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΡΡΡΠΎΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠ΅Π³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ. ΠΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ·-Π·Π° ΡΠ»ΡΡΡΠ΅Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.