3. ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°Ρ , Π³Π΄Π΅ ΠΏΡΠΎΡΠ°ΠΌΠΌΠ° Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π° ΠΈ/ΠΈΠ»ΠΈ Π½Π΅ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠ° ΠΈ
4. ΠΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ ΡΡΠΎ Π΅ΡΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
// tbl.c: Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½ /* ΠΠ°ΡΡΡΠΎΠ²ΡΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°ΡΡΠΈΡΠ½ΡΠΌ Π‘ΠΌ. Ralston: Β«A first course ...Β» ΡΡΡ. 411. */
// swap() ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° AT amp;T sB20.
/**************************************
Copyright (c) 1984 AT amp;T, Inc. All rights reserved
****************************************/
Π£Π΄Π°ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΈ Ρ ΠΎΡΠΎΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ β ΡΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΡΠΊΠΎΠ»Ρ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ //, ΡΠΎ Π»ΡΠ±ΡΡ ΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² /* */, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
3.5 Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. (*1) ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ for Π² Π²ΠΈΠ΄Π΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° while: for (i=0; iΒ«max_length; i++) if (input_line[i] == '?') quest_count++;
2. (*1) ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°ΡΡΡΠ°Π²ΡΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΡΠ°ΠΆΠ½ΠΈΡΡ : a = b + c * d «« 2 amp; 8 a amp; 077 != 3 a == b !! a == c amp; amp; c Β« 5 c = x != 0 0 Β«= i Β« 7 f(1,2)+3 a = -1 + + b β β 5 a = b == c ++ a = b = c = 0 a[4][2] *= * b ? c : * d * 2 a-b,c=d
3. (*2) ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π‘++, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ.
4. (*2) ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π΄Π΅ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π½Π΅ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΠΉ Π‘++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
5. (*1) Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Π΄Π΅Π»ΠΈΡΠ΅ Π½Π° Π½ΠΎΠ»Ρ? Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ?
6. (*1) ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°ΡΡΡΠ°Π²ΡΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΡΠ°ΠΆΠ½ΠΈΡΡ : *p++ *βp ++aβ (int*)p-Β»m *p.m *a[i]
7. (*2) ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: strlen(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ, strcpy(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Π² Π΄ΡΠ³ΡΡ, ΠΈ strcmp(), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ. Π Π°Π·Π±Π΅ΡΠΈΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΠΈΠΏΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ½ΠΈΠΉ, Π° ΠΏΠΎΡΠΎΠΌ ΡΡΠ°Π²Π½ΠΈΡΠ΅ ΠΈΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Β«string.hΒ» ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.
8. (*1) ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ Π²Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ: a := b+1; if (a = 3) // ... if (a amp;077 == 0) // ΠΡΠΈΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΠΏΡΠΎΡΠ΅, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π° Π½ΠΈΡ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ.
9. (*2) ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ cat(), ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Π΄Π²Π° ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΡΠΈΠ΅ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ new, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΠ·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ rev(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΠ΅Ρ Π² Π½Π΅ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. Π’ΠΎ Π΅ΡΡΡ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° rev(p) ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» p ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ.
10. (*2) Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°?
void send(register* to, register* from, register count) // ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Ρ. (* register n=(count+7)/8; switch (count%8) (* case 0: do (* *to++ = *from++; case 7: do (* *to++ = *from++; case 6: do (* *to++ = *from++; case 5: do (* *to++ = *from++; case 4: do (* *to++ = *from++; case 3: do (* *to++ = *from++; case 2: do (* *to++ = *from++; case 1: do (* *to++ = *from++; while (βnΒ»0); *) *) ΠΠ°ΡΠ΅ΠΌ ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠ³ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅?
11. (*2) ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ atoi(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΡΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΈΡΡΡ, ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ int. ΠΠ°ΡΠΈΠΌΠ΅Ρ, atoi(Β«123Β») β ΡΡΠΎ 123. ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ atoi() ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΠΎΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π»Π° Π΅ΡΠ΅ Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΡΡ ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈΡΠΈΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠΈ Π‘++. ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ atoi() ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ itoa(), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ.
12. (*2) ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ get_token() (#3.1.2), ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΡΠΈΡΠ°Π»Π° ΡΡΡΠΎΠΊΡ Π² Π±ΡΡΠ΅Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π»ΡΠ»Π° Π»Π΅ΠΊΡΠ΅ΠΌΡ, ΡΠΈΡΠ°Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· Π±ΡΡΠ΅ΡΠ°.
13. (*2) ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΠΈΠ· #3.1 ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ sqrt(), log() ΠΈ sin(). ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈ Π²ΡΠ·ΡΠ²Π°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
14. (*3) ΠΠ°ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ½ΡΠΈΠΈ Π² Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ΅. ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΏΡΡΠΌΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΈΡ Π½Π°Π±ΡΠ°Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π’Π°ΠΊΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΠΊ Π»Π΅ΠΊΡΠ΅ΠΌ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π»Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΡΠΎΡΠΌΡ Π·Π°ΠΏΠΈΡΠΈ ΡΡΠΎΠ³ΠΎ.
15. (*1.5) ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΡΠ°ΠΊ, ΡΡΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ name_string ΠΈ number_value ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»Π° symbol: struct symbol (* token_value tok; union (* double number_value; char* name_string; *); *);
16. (*2.5) ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ· Π‘++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’ΠΎ Π΅ΡΡΡ, ΡΠΈΡΠ°Π΅Ρ ΠΈΠ· cin, ΡΠ΄Π°Π»ΡΠ΅Ρ // ΠΈ /* */ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΈΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² cout. ΠΠ΅ Π·Π°Π±ΠΎΡΡΡΠ΅ΡΡ ΠΎ ΠΏΡΠΈΡΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° (ΡΡΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ, Π±Π»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ΠΌ). ΠΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΡΠ΅ΡΠ΅Π³Π°ΠΉΡΠ΅ΡΡ // ΠΈ /* ΠΈ */ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΡΡΡΠΎΠΊ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ.
17. (*2) ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ, ΠΊΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
ΠΠ»Π°Π²Π° 4 Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π€Π°ΠΉΠ»Ρ
ΠΡΠ΅ΡΠ°ΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ, ΡΠ΅ΠΊΡΡΡΠΈΡ Π±ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½Π°.
Π. ΠΠΈΡΠ΅Ρ ΠΠΎΠΉΡΠΡΠ΅ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ (ΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ). Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ, ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ (ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅), ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. Π‘ΡΠ΄Π° Π²Ρ ΠΎΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΡΠ°Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΈΠΌΠ΅Π½ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ.
4.1 ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΌΠ΅ΡΡ Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠ΄Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π³Π΄Π΅-ΡΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΡΠ°Π½ΠΈΡΡ Π²Π΅ΡΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π΅ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ ΠΈ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ. Π‘ΠΏΠΎΡΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠΈΡΠ°ΡΡΠ΅ΠΌΡ ΠΎΡ Π²Π°ΡΠΈΡΡ Π²ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ», ΡΠΎ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π² ΡΠ°ΠΉΠ» Π²Π½ΠΎΡΠΈΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (ΡΠΊΠΎΠ»Ρ Π±Ρ ΠΌΠ°Π»ΠΎ ΠΎΠ½ΠΎ Π½ΠΈ Π±ΡΠ»ΠΎ), Π²Π΅ΡΡ ΡΠ°ΠΉΠ» Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ. ΠΠ°ΠΆΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΌΠ΅ΡΠ΅Π½Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π½Π° ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΏΠΈΠ»ΡΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ².
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠΎΠΌ. ΠΠ½ Π±ΡΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠ»ΠΈ Π²Ρ Π΅Π³ΠΎ Π½Π°Π±ΠΈΠ»ΠΈ, ΡΠΎ Ρ Π²Π°Ρ Π½Π²Π΅ΡΠ½ΡΠΊΠ° Π±ΡΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΈ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ Β«ΡΠ°Π»ΡΡΠΈΠ²ΠΎΠ΅Β» ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΌΠΎΠ³ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ expr(), term() ΠΈ prim(). Π ΡΠ΅ΠΊΡΡΠ΅ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ (Π»Π΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ°, ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°), Π½ΠΎ ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎ ΡΡΡΠΈ Π΄Π΅Π»Π°, ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ. Π’Π°ΠΊ ΡΡΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΡΡΡ; Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π² ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Β«Π½Π° Π²ΡΠ±ΡΠΎΡΒ» ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅ΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΎΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π°Π²ΡΠΎΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ΅Ρ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² 200 ΡΡΡΠΎΠΊ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π±ΡΠ»ΠΎ ΠΏΡΠΈΡΡΠ½Π΅Π΅.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² ΡΠΌΡΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΈ ΡΠΈΠΏΠΎΠ², ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· ΠΎΠ½ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΈ ΠΊΠΎΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ*. ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΡΡΠΊΡΡΡΠ°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ Π²ΠΌΠ΅ΡΡΠ΅. ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ ΡΠ°ΡΡΠΎ (ΠΏΡΡΠ°Ρ) Π½Π·ΡΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠΌ. Π UNIX'Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ld. ΠΠ΄Π½ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ»Π°Π±ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ.
β * ΠΈΠ»ΠΈ Π»ΠΈΠ½ΠΊΠ΅Ρ. (ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².)
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ (ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅
Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ°ΡΡΡΡ . Π‘ΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ, Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π±ΡΠ΄ΡΡ. Π‘++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅*.
β * C ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠΎΠ·Π²Π»ΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π½Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡ. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ C, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²ΠΎΠ·ΡΠΎΡΠ»ΠΎ Π½Π΅ΠΈΠΌΠΎΠ²Π΅ΡΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠ²Π½ΡΡ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΡ, ΡΠ΅ΠΉΡΠ°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½ΡΡΠΈΠ½ΡΠ²ΠΎ. (ΠΏΡΠΈΠΌ. Π°Π²ΡΠΎΡΠ°)
4.2 ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°
ΠΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅, ΡΠΎ ΠΈΠΌΡ, Π½Π΅ ΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΌΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠΈΠΏΡ, Π·Π½ΡΠ΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π’ΠΎ Π΅ΡΡΡ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²Π° ΡΠ°ΠΉΠ»Π°:
// file1.c: int a = 1; int f() (* /* ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ */ *)
// file2.c: extern int a; int f(); void g() (* a = f(); *)
a ΠΈ f(), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ g() Π² ΡΠ°ΠΉΠ»Π΅ file2.c,β ΡΠ΅ ΠΆΠ΅, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ file1.c. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ extern (Π²Π½Π΅ΡΠ½Π΅Π΅) ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ a Π² file2.c ΡΠ²Π»ΡΠ΅ΡΡΡ (ΡΠΎΠ»ΡΠΊΠΎ) ΠΎΠΏΠΈΡΠ½ΠΈΠ΅ΠΌ, Π° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ Π±Ρ a ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ, extern Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΠΈΠ½ΠΈΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ±ΡΠ΅ΠΊΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·, Π½ΠΎ ΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: