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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 165

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

$ <b>touch b.h</b>

$ <b>make -f Makefile1</b>

gcc -c 2.с gcc -с 3.c

gcc -o myapp main.ΠΎ 2.ΠΎ 3.o

$

Команда

make
ΠΏΡ€ΠΎΡ‡Π»Π° ваш make-Ρ„Π°ΠΉΠ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ²ΡˆΠΈΠΉ минимальноС количСство ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ построСния myapp, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π° ΠΈΡ… Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотритС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

$ <b>rm 2.o</b>

$ <b>make -f Makefile1</b>

gcc -с 2.c

gcc -ΠΎ myapp main.ΠΎ 2.ΠΎ 3.ΠΎ

$

И снова команда

make
ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ опрСдСляСт Π½ΡƒΠΆΠ½Ρ‹Π΅ дСйствия.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² make-Ρ„Π°ΠΉΠ»Π΅

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² make-Ρ„Π°ΠΉΠ»Π΅ начинаСтся со Π·Π½Π°ΠΊΠ°

#
ΠΈ продолТаСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки. Как ΠΈ Π² исходных Ρ„Π°ΠΉΠ»Π°Ρ… Π½Π° языкС Π‘, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² make-Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€Ρƒ, Ρ‚Π°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ имСлось Π² Π²ΠΈΠ΄Ρƒ Π²ΠΎ врСмя написания Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.Sta

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Π² make-Ρ„Π°ΠΉΠ»Π΅

Π”Π°ΠΆΠ΅ Ссли Π±Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

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

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Π² make-Ρ„Π°ΠΉΠ»Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ конструкции

MAΠ‘RONAME=<i>Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅</i>
, Π·Π°Ρ‚Π΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΊΠ°Π·Π°Π²
$(MACRONAME)
ΠΈΠ»ΠΈ
${MACRONAME}
. НСкоторыС вСрсии
make
ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ
$MACRONAME
. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ макроса, оставив пустой Ρ‡Π°ΡΡ‚ΡŒ строки послС Π·Π½Π°ΠΊΠ°
=
.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² make-Ρ„Π°ΠΉΠ»Π°Ρ… для задания ΠΎΠΏΡ†ΠΈΠΉ компилятора. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ компилируСтся Π±Π΅Π· ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Для ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии прилоТСния, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½ΡƒΠΆΠ½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹: малСнький Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ„Π°ΠΉΠ»Π΅ Makefile1 β€” ТСстко Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ имя компилятора

gcc
. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… UNIX-систСмах Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
cc
ΠΈΠ»ΠΈ
c89
. Если ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ пСрСнСсти ваш make-Ρ„Π°ΠΉΠ» Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ UNIX ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ компилятор для ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ Ρƒ вас систСмы, придСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСсколько строк Π² вашСм make-Ρ„Π°ΠΉΠ»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ β€” Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС эти систСмнозависимыС части ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ….

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ макросы ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² самом make-Ρ„Π°ΠΉΠ»Π΅, Π½ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

make
, Ссли Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ макроса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
make CC=c89
. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π΄Π°Π½Π½ΠΎΠΌΡƒ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² make-Ρ„Π°ΠΉΠ»Π΅ опрСдСлСния. Π—Π°Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½Π΅ make-Ρ„Π°ΠΉΠ»Π° опрСдСлСния макросов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, поэтому ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ»ΠΈ примСняйтС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
&quot;CC = с89&quot;
.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.2.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.2. Make-Ρ„Π°ΠΉΠ» с макросом

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° пСрСработанная вСрсия make-Ρ„Π°ΠΉΠ»Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Makefile2, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ макросы:

all: myapp

# Какой компилятор

Π‘Π‘ = gcc

# Π“Π΄Π΅ хранятся Ρ„Π°ΠΉΠ»Ρ‹ include

INCLUDE = .

# ΠžΠΏΡ†ΠΈΠΈ для процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π‘FLAGS = -g -Wall -ansi

# ΠžΠΏΡ†ΠΈΠΈ для ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии

# БFLAGS = -О -Wall -ansi

myapp: main.ΠΎ 2.o 3.o

Β $(CC) -ΠΎ myapp main.ΠΎ 2.o 3.o

main.ΠΎ: main.c a.h

 $(CC) -I$(INCLUDE) $(CFLAGS) -с main.c

2.ΠΎ: 2.c a.h b.h

Β $(CC) -I$(INCLUDE) $(CFLAGS) -c 2.c

3.o: 3.c b.h c.h

Β $(CC) -I$(INCLUDE) $(CFLAGS) -c 3.c

Если ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠ»ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ прилоТСния ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ make-Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

$ <b>rm *.ΠΎ myapp</b>

$ <b>make -f Makefile2</b>

gcc -I. -g -Wall -ansi -c main.c

gcc -I. -g -Wall -ansi -c 2.c

gcc -I. -g -Wall -ansi -c 3.c

gcc -o myapp main.ΠΎ 2.o 3.o

$

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° make замСняСт ссылки Π½Π° макросы

$(CC)
,
$(CFLAGS)
ΠΈ
$(INCLUDE)
ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ опрСдСлСниями Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ компилятор Π‘ поступаСт с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ
#define
. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ компиляции, Π²Π°ΠΌ придСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ строку make-Ρ„Π°ΠΉΠ»Π°.

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

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

Π’Π°Π±Π»ΠΈΡ†Π° 9.1

ΠœΠ°ΠΊΡ€ΠΎΡ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
$?
Бписок Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… условий (Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»), ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»
[email protected]
Имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ задания
$&lt;
Имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ зависит Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ
$*
Имя Π±Π΅Π· суффикса Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ зависит Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ