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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 58

Автор ΠœΡŽΡ€Ρ€Π΅ΠΉ Π₯ΠΈΠ»Π»

ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ ( список_описаний_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² )

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

Π’Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄

Ρ‚Π΅Π»ΠΎ_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: составной_ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

int max(int a, int b, int c) (* int m = (a Β« b) ? a : b; return (m Β» c) ? m : c; *)

Π—Π΄Π΅ΡΡŒ int – это спСцификатор_Ρ‚ΠΈΠΏΠ°; max(int a, int b, int c) – это ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; (* ... *) – это Ρ‚Π΅Π»ΠΎ_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² контСкстС выраТСния имя моссива (Π² особСности, ΠΊΠ°ΠΊ фактичСского ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°) принимаСтся ΠΊΠ°ΠΊ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива, описания Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ описаны ΠΊΠ°ΠΊ «массив ΠΈΠ· ...Β», ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ Β«ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ...Β».

Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ конструктора ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Ρ‚ΠΎΡ€Ρ‹ для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΈ для Ρ‡Π»Π΅Π½ΠΎΠ². Π­Ρ‚ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса, констант ΠΈ ссылок, Π³Π΄Π΅ сСмантика ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ присваивания Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€_Π±Π°Π·Π²ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄

ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€_Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ: : список_ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ²_Ρ‡Π»Π΅Π½ΠΎΠ²

список_ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ²_Ρ‡Π»Π΅Π½ΠΎΠ²: ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€_Ρ‡Π»Π΅Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€_Ρ‡Π»Π΅Π½Π° , список_ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ²_Ρ‡Π»Π΅Π½ΠΎΠ²

ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€_Ρ‡Π»Π΅Π½Π°: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ opt ( список_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² opt )

Если Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅_Ρ‡Π»Π΅Π½Π° Π΄Π°Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ρ‚ΠΎ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‡Π»Π΅Π½Π°; Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. НапримСр:

struct base (* base(int); ... *);

struct derived : base (* derived(int); base b; const c;

*);

derived::derived(int a) : (a+1), b(a+2), c(a+3) (* /* ... */ *)

derived d(10);

Π‘Π½Π°Ρ‡Π°Π»Π° конструктор Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса вызываСтся для ΠΎΠ±Π΅ΠΊΡ‚Π° d с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 11, Π·Π°Ρ‚Π΅ΠΌ вызываСтся конструктор для Ρ‡Π»Π½Π° b с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 12 ΠΈ конструктор для Ρ‡Π»Π΅Π½Π° c с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ 13. Π—Π°Ρ‚Π΅ΠΌ выполняСтся Ρ‚Π΅Π»ΠΎ derived::derived() (см. #8.5.5). ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ конструкторы для Ρ‡Π»Π΅Π½ΠΎΠ², Π½Π΅ ΡƒΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½. Если Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ конструктор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½Π΅ Π½Π°Π΄ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ список ΠΏΠ°Ρ€ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Если класс Ρ‡Π»Π΅Π½Π° ΠΈΠΌΠ΅Π΅Ρ‚ конструктор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Ρ‹Π²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², для этого Ρ‡Π»Π΅Π½Π° Π½Π΅ Π½Π°Π΄ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

11. ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π°

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ содСрТит прСпроцСссор, способный Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ макроподстановки, ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с #, относятся ΠΊ прСпроцСссору. Π­Ρ‚ΠΈ строки ΠΈΠΌΠ΅ΡŽΡ‚ нСзависимый ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка синтаксис; ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² любом мСстС ΠΈ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ влияниС, ΠΊΠΎΡ‚Ρ€ΠΎΠ΅ распространяСтся (нСзависимо ΠΎΡ‚ области видимости) Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ опрСдСлСния const ΠΈ inline Π΄Π°ΡŽΡ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° использований #define.

11.1 Π—Π°ΠΌΠ΅Π½Π° ЛСксСм

Командная строка компилятора Π²ΠΈΠ΄Π°

#define ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ строка_лСксСм Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Ρƒ прСпроцСссором ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ строкой символов. Π’ΠΎΡ‡ΠΊΠ° с запятой Π²Π½ΡƒΡ‚Ρ€ΠΈ (ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅) строки символов являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ этой строки.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π²ΠΈΠ΄Π°

#define ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€( ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ , ... , ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€) строка_лСксСм

Π³Π΄Π΅ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ (, явлСтся ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вхоТдСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° с ΠΈΠ΄ΡƒΡ‰ΠΈΠΌΠΈ Π·Π° Π½ΠΈΠΌ (, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎΡΡ‚ΡŒΡŽ символов, Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ запятыми, ΠΈ ), Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ строкой символов, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ. КаТдоС мСстополоТниС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π² спискС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² опрСдСлния, замСняСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строкой ΠΈΠ· Π²Ρ‹Π·ΠΎΠ²Π°. Π€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΠΊΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ строки символов, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми; ΠΎΠ΄Π½Π°ΠΊΠΎ запятыС Π² строкС, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΈΠ»ΠΈ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ раздСлитСлями ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Число Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы Π² символьной строкС ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² писках Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½ΠΎ строки ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² поисках ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ…

(с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ define) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ².

Π’ ΠΎΠ±ΠΎΠΈΡ… случаях строка замСщСния Π΅Ρ‰Π΅ Ρ€Π°Π· сканируСтся Π² поисках Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π½Π½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². Π’ ΠΎΠ±ΠΎΠΈΡ… случаях Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ строкС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ записи \ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌΠΎΠΉ строки.

Командная строка Π²ΠΈΠ΄Π°

#undef ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

Π²Π»Π΅Ρ‡Π΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½Ρƒ прСпроцСссорного опрСдСлСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚Ρ€Π°.

11.2 Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π€Π°ΠΉΠ»ΠΎΠ²

Командная строка компилятора Π²ΠΈΠ΄Π°

#include «имя_Ρ„Π°ΠΉΠ»Π°Β»

Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Ρƒ этой строки ΠΏΠΎΠ»Π½Ρ‹ΠΌ содСрТимым Ρ„Π°ΠΉΠ»Π° имя_ Ρ„Π°ΠΉΠ»Π°. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ищСтся Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ исходного Ρ„Π°ΠΉΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ Π² стандартных ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… мСстах. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, командная строка Π²ΠΈΠ΄Π°

#include «имя_Ρ„Π°ΠΉΠ»Π°Β»

ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ поиск Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² стандартном ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚Π΅, ΠΈ Π½Π΅ ΠΈΡ‰Π΅Ρ‚ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ исходного Ρ„Π°ΠΉΠ»Π°. (Π’ΠΎ, ΠΊΠ°ΠΊ эти ΠΌΠ΅Ρ‚Π° Π·Π°Π΄Π°ΡŽΡ‚ΡΡ, Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ языка.) Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ #include ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ.

11.3 Условная ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ

Командная строка компилятора Π²ΠΈΠ΄Π°

#if Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

провСряСт, являСтся Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния выраТСния Π½Π΅-ноль. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ константным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚Ρ€Ρ‹Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² #12. ΠšΡ€ΠΎΠΌΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π‘++ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ унарная опСрация defined. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ ΠΈΠ΄Π΅Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ ΠΎΠ½Π° Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅-ноль, Ссли этот ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±Ρ‹Π» Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ #define ΠΈ послС этого Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ опрСдСлСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ #undef; ΠΈΠ½Π°Ρ‡Π΅ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0. Командная строка Π²ΠΈΠ΄Π°

#ifdef ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

провСряСт, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² прСпроцСссорС Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚; Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π±Ρ‹Π» Π»ΠΈ ΠΎΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки # define. Командная строка Π²ΠΈΠ΄Π°


#ifndef ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

провСряСт, являСтся Π»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π² прСпроцСссорС Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π²ΠΈΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ количСство строк, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, содСрТащих ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку

#else

ΠΈ Π΄Π°Π»Π΅Π΅ Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

#endif

Если ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ условиС истинно, Ρ‚ΠΎ всС строки ΠΌΠ΅ΠΆΠ΄Ρƒ #else ΠΈ #endif ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. Если ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ условиС Π»ΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ всС строки ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΈ #else ΠΈΠ»ΠΈ, Π² случаС отсуттвия #else, #endif, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

Π­Ρ‚ΠΈ конструкции ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ.

11.4 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠΉ

Для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прСпроцСссорам, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘++, строка Π²ΠΈΠ΄Π°

#line константа «имя_Ρ„Π°ΠΉΠ»Π°Β»

заставляСт компилятор ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² цСлях дианостики ошибок, Ρ‡Ρ‚ΠΎ константа Π·Π°Π΄Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ слСдущСй строки исходного Ρ„Π°ΠΉΠ»Π°, ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» имСнуСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Если ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ отсутствуСт, Ρ‚ΠΎ Π·Π°ΠΏΠΎΠΌΠ½Π΅Π½Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π° Π½Π΅ измСняСтся.

12. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½Ρ‹Π΅ ВыраТСния

Π’ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах Π‘++ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выраТСния, вычислСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π°Π΅Ρ‚ константу: Π² качСствС Π³Ρ€Π°Π½ΠΈΡ† массива (#8.4), Π² case выраТСниях (#9.7), Π² качСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (#8.3), ΠΈ Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ… (#8.6). Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ константы, ΡΠΈΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы, константы пСрСчислСний, значСния нСсостаных const, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… константными выраТСниями, ΠΈ sizeof выраТСния, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, связанныС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ опСрациями

+ – * / % amp; ! ^ Β«β€ž β€œΒ» == != Β« Β» Β«= Β»= amp; amp; !!

ΠΈΠ»ΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ опСрациями

+ – ~ !

ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ

?:


Π‘ΠΊΠΎΠ±ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для группирования, Π½ΠΎ Π½Π΅ для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях константноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡƒΠ½Π°Ρ€Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ amp;, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΡƒΡŽ ΠΊ внСшним ΠΈΠ»ΠΈ статичСским ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΠΈΠ»ΠΈ ΠΊ внСшним ΠΈΠ»ΠΈ статичСским массивам, индСксированным константным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Унарная опСрация amp; ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° нСявно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ употрСблСния ниндСксированных массивов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ОсновноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ вычислСнии Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°Π½Ρ‚Ρƒ ΠΈΠ»ΠΈ адрСс Ρ€Π°Π½Π΅Π΅ описанного внСшнСго ΠΈΠ»ΠΈ статичСского ΠΎΠ±ΠΉΠ΅ΠΊΡ‚Π° плюс ΠΈΠ»ΠΈ минус константа.

МСньшая ΡˆΠΈΡ€ΠΎΡ‚Π° допустима для константных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ послС #if: нСдопустимы ΠΈΠΌΠ΅Π½Π°, описанныС const, sizeof выраТСния ΠΈ пСрСчислимыС константы.

13. БообраТСния ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ части Π‘++ ΡΠ²Π»ΡΡŽΡ‚ΡΡ машинно зависимыми ΠΏΠΎ своСй сути. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½ΠΈΠΆΠ΅ список мСст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡ‚Ρƒ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° основныС ΠΈΠ· Π½ΠΈΡ….

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

Число рСгистровых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ фактичСски ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² рСгистры, различаСтся ΠΎΡ‚ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΊ машинС, ΠΊΠ°ΠΊ ΠΈ мноТСство Π΄Π΅ΠΉΡΠ²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, всС компиляторы Π½Π° «своСй» машинС всС Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ; ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π½Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ описания register ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.