Π Π°Π·Π½ΠΎΠ΅

Π€Π°ΠΉΠ»Ρ‹ си: ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ». Π£Ρ€ΠΎΠΊ 18 курса «ΠžΡΠ½ΠΎΠ²Ρ‹ языка C»

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

Π”ΠΎ этого ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅-Π²Ρ‹Π²ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ со стандартными ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ β€” ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим, ΠΊΠ°ΠΊ Π² языкС C Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ запись ΠΈΡ… Ρ‚ΡƒΠ΄Π°. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅ΠΌΡƒ.

Π’ языкС программирования C ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ FILE ΠΈ Π΅Π³ΠΎ объявлСниС выглядит Ρ‚Π°ΠΊ:

FILE *myfile;

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, функция fopen() ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° адрСсу Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния («r»), записи («w») ΠΈΠ»ΠΈ добавлСния («a») ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π΅Π³ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ процСсс открытия Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

myfile = fopen("hello.txt", "r");

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’ случаС использования ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ адрСсации Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ/Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‚, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ адрСс ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½. ΠœΠ΅ΡΡ‚ΠΎ нахоТдСния самого исполняСмого Ρ„Π°ΠΉΠ»Π° Π½Π΅ Π²Π°ΠΆΠ½ΠΎ.

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΌΡƒ осущСствляСтся посрСдством Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ указатСля (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, myfile).

Если Π² силу Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ (Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу, Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ доступ ΠΊ Π½Π΅ΠΌΡƒ) функция fopen() Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ NULL. Π’ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ открытия Ρ„Π°ΠΉΠ»Π° Π² Π²Π΅Ρ‚ΠΊΠ΅ if, ΠΌΡ‹ ΠΆΠ΅ Π΄Π°Π»Π΅Π΅ опустим это.

ОбъявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fopen() содСрТится Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ stdio.h, поэтому трСбуСтся Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ Π² stdio.h объявлСн Ρ‚ΠΈΠΏ-структура FILE.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠΌ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°, принято Π΅Π³ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ, Ссли послС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π Π°Π·Ρ€Ρ‹Π² связи ΠΌΠ΅ΠΆΠ΄Ρƒ внСшним Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fclose(). Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΅ΠΉ пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„Π°ΠΉΠ»:

fclose(myfile);

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ». Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ связан со своим Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ. Однако Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сначала Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ, Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для открытия Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· тСкстового Ρ„Π°ΠΉΠ»Π° ΠΈ запись Π² Π½Π΅Π³ΠΎ

fscanf()

Ѐункция fscanf() Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΏΠΎ смыслу Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ scanf(), Π½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ Π½Π΅Π΅ осущСствляСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Π° Π½Π΅ стандартного ΠΏΠΎΡ‚ΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π°. Ѐункция fscanf() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, строку Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, адрСса областСй памяти для записи Π΄Π°Π½Π½Ρ‹Ρ…:

fscanf(myfile, "%s%d", str, &a); 

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство ΡƒΠ΄Π°Ρ‡Π½ΠΎ считанных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ EOF. ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹, символы ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» содСрТащий Ρ‚Π°ΠΊΠΎΠ΅ описаниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

apples 10 23.4
bananas 5 25.0
bread 1 10.3

Π’ΠΎΠ³Π΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

#include <stdio.h>
Β 
int main () { 
    FILE *file;
    struct food {
        char name[20]; 
        unsigned qty; 
        float price; 
    };
    struct food shop[10];
    char i=0;
Β 
    file = fopen("fscanf.txt", "r");
Β 
    while (fscanf(file, "%s%u%f", 
        shop[i].name, &(shop[i].qty), 
        &(shop[i].price)) != EOF) {
Β 
        printf("%s %u %.2f\n", shop[i].name, 
               shop[i].qty, shop[i].price); 
        i++;
    }
}

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ структура ΠΈ массив структур. КаТдая строка ΠΈΠ· Ρ„Π°ΠΉΠ»Π° соотвСтствуСт ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту массива; элСмСнт массива прСдставляСт собой структуру, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ строковоС ΠΈ Π΄Π²Π° числовых поля. Π—Π° ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ†ΠΈΠΊΠ» считываСт ΠΎΠ΄Π½Ρƒ строку. Когда встрСчаСтся ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° fscanf() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ EOF ΠΈ Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

fgets()

Ѐункция fgets() Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ gets() ΠΈ осущСствляСт построчный Π²Π²ΠΎΠ΄ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Один Π²Ρ‹Π·ΠΎΠ² fgets() позволят ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ строку. ΠŸΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ всю строку, Π° лишь Π΅Π΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ fgets() выглядят Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

fgets(массив_символов, 
      количСство_считываСмых_символов, 
      ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ_Π½Π°_Ρ„Π°ΠΉΠ»)

НапримСр:

fgets(str, 50, myfile)

Π’Π°ΠΊΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, связанного с ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ myfile, ΠΎΠ΄Π½Ρƒ строку тСкста ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Ссли Π΅Π΅ Π΄Π»ΠΈΠ½Π° мСньшС 50 символов с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ символа ‘\n’, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ функция Ρ‚Π°ΠΊΠΆΠ΅ сохранит Π² массивС. ПослСдним (50-Ρ‹ΠΌ) элСмСнтом массива str Π±ΡƒΠ΄Π΅Ρ‚ символ ‘\0’, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ fgets(). Если строка окаТСтся Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‚ΠΎ функция ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ 49 символов ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ ‘\0’. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ‘\n’ Π² считанной строкС ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

#include <stdio.h>
Β 
#define N 80
Β 
main () { 
    FILE *file;
    char arr[N];
Β 
    file = fopen("fscanf.txt", "r");
Β 
    while (fgets(arr, N, file) != NULL)
        printf("%s", arr);
Β 
    printf("\n");
    fclose(file);
}

Π’ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ строка Π·Π° строкой Π² массив arr. Когда считываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка, прСдыдущая тСряСтся. Ѐункция fgets() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ NULL Π² случаС, Ссли Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку.

getc() ΠΈΠ»ΠΈ fgetc()

Ѐункция getc() ΠΈΠ»ΠΈ fgetc() (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅) позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΎΠ΄ΠΈΠ½ символ.

#include <stdio.h>
Β 
#define N 80
Β 
int main () { 
    FILE *file;
    char arr[N];
    int i;
Β 
    file = fopen("fscanf.txt", "r");
Β 
    while ((arr[i] = fgetc(file)) != EOF) {
        if (arr[i] == '\n') {
            arr[i] = '\0';
            printf("%s\n",arr);
            i = 0;
        }
        else i++;
    }
    arr[i] = '\0';
    printf("%s\n",arr);
Β 
    fclose(file);
}

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π½Π° экран.

Π—Π°ΠΏΠΈΡΡŒ Π² тСкстовый Ρ„Π°ΠΉΠ»

Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π²Π²ΠΎΠ΄, Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ.

  • Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄. Ѐункция fprintf (Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ_ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, строка_Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅).
  • ΠŸΠΎΡΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄. Ѐункция fputs (строка, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ_ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ).
  • ΠŸΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄. Ѐункция fputc() ΠΈΠ»ΠΈ putc(символ, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ_ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ).

НиТС приводятся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ способа Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ».

Π—Π°ΠΏΠΈΡΡŒ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠΉ структуры:

#include <stdio.h>
Β 
int main () { 
    FILE *file;
    struct food {
        char name[20]; 
        unsigned qty; 
        float price; 
    };
    struct food shop[10];
    char i=0;
Β 
    file = fopen("fprintf.txt", "w");
Β 
    while (scanf("%s%u%f", shop[i].name, 
           &(shop[i].qty), 
           &(shop[i].price)) != EOF) {
Β 
        fprintf(file, "%s %u %.2f\n", 
                shop[i].name, shop[i].qty, 
                shop[i].price); 
        i++;
    }
    fclose(file);
}

ΠŸΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» (fputs(), Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ puts() сама Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² ΠΊΠΎΠ½Ρ†Π΅ строки ‘\n’):

while (gets(arr) != NULL) {
    fputs(arr, file);
    fputs("\n", file);
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ посимвольного Π²Ρ‹Π²ΠΎΠ΄Π°:

while ((i = getchar()) != EOF)
    putc(i, file);

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ запись Π² Π½Π΅Π³ΠΎ

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

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ доступа, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fopen() являСтся строка «rb» ΠΈΠ»ΠΈ «wb».

Π’Π΅ΠΌΠ° ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ достаточно слоТная, для Π΅Π΅ изучСния трСбуСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ. Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ особСнности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ чтСния-записи Π² Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рассматриваСтся ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ².

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ fread() ΠΈ fwrite() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

  1. адрСс области памяти, ΠΊΡƒΠ΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ,
  2. Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΠ°,
  3. количСство считываСмых Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°,
  4. Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ количСство ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ записанных Π΄Π°Π½Π½Ρ‹Ρ…. Π’.Π΅. ΠΌΠΎΠΆΠ½ΠΎ «Π·Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ» считываниС 50 элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 10. Ошибки ΠΏΡ€ΠΈ этом Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ fread() ΠΈ fwrite():

#include <stdio.h>
#include <string.h>
Β 
int main () {
    FILE *file;
    char shelf1[50], shelf2[100];
    int n, m;
Β 
    file = fopen("shelf1.txt", "rb");
    n=fread(shelf1, sizeof(char), 50, file);
    fclose(file);
Β 
    file = fopen("shelf2.txt", "rb");
    m=fread(shelf2, sizeof(char), 50, file);
    fclose(file);   
Β 
    shelf1[n] = '\0';
    shelf2[m] = '\n';
    shelf2[m+1] = '\0';
Β 
    file = fopen("shop.txt", "wb");
    fwrite(strcat(shelf2,shelf1), 
           sizeof(char), n+m, file);
    fclose(file);   
}

Π—Π΄Π΅ΡΡŒ осущСствляСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° чтСния ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° 50-Ρ‚ΠΈ символов. Π’ n сохраняСтся количСство Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ считанных символов. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ n ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ 50 ΠΈΠ»ΠΈ мСньшС. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² строку. Π’ΠΎ ΠΆΠ΅ самоС происходит со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ. Π”Π°Π»Π΅Π΅ пСрвая строка присоСдиняСтся ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ„Π°ΠΉΠ».

  1. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ имя (адрСс) тСкстового Ρ„Π°ΠΉΠ»Π°, Π΄Π°Π»Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈ считаСт Π² Π½Π΅ΠΌ количСство символов ΠΈ строк.
  2. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая записываСт Π² Ρ„Π°ΠΉΠ» Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ записью. КаТдая строка Π΄Π°Π½Π½Ρ‹Ρ…, получСнная ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² структуру.

ΠšΡƒΡ€Ρ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ части Π·Π°Π΄Π°Ρ‡:
android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, pdf-вСрсия

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C ΠΈ C++

Π’ Π‘ Ρ„Π°ΠΉΠ»Ρ‹ — это логичСская концСпция, примСнимая ΠΊΠΎ всСму, начиная ΠΎΡ‚ дисковых Ρ„Π°ΠΉΠ»ΠΎΠ² оканчивая Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ. ΠŸΠΎΡ‚ΠΎΠΊ связываСтся с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ открытия. Если Ρ„Π°ΠΉΠ» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΠΎΠ±ΠΌΠ΅Π½ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

НС всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ возмоТности. НапримСр, дисковый Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ доступ, Π° ΠΌΠΎΠ΄Π΅ΠΌ — Π½Π΅Ρ‚. Π­Ρ‚ΠΎ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ систСмы Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π‘ -всС ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, Π° Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅Ρ‚.

Если Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ доступ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π°. По ΠΌΠ΅Ρ€Π΅ чтСния ΠΈΠ»ΠΈ записи символов Π² Ρ„Π°ΠΉΠ» ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ увСличиваСтся, обСспСчивая Ρ‚Π΅ΠΌ самым ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ.

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

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

Π’ Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ ΠΏΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… тСкстовых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²: stdin, stdout, stderr, stdaux ΠΈ stdprn. Они ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ стандартным устройствам Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°:

ΠŸΠΎΡ‚ΠΎΠΊ Устройство
stdin
stdout
stderr
stdaux
stdprn
ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°
Π­ΠΊΡ€Π°Π½
Π­ΠΊΡ€Π°Π½
ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚
ΠŸΡ€ΠΈΠ½Ρ‚Π΅Ρ€

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ стандартом ANSI Π‘ ΠΈ любой ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΡ…, являСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСносимым. ПослСдниС Π΄Π²Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Borland ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ компиляторы. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, поэтому ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π² Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ устройства. (ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° — это процСсс, ΠΊΠΎΠ³Π΄Π° информация, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π°Ρ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎ устройство, пСрСнаправляСтся Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ устройство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой.) Никогда Π½Π΅ слСдуСт явно ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ассоциированный с Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΈΠΌΠ΅Π΅Ρ‚ структуру управлСния Ρ„Π°ΠΉΠ»ΠΎΠΌ Ρ‚ΠΈΠΏΠ° FILE. Данная структура ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ stdio.h. НС слСдуСт ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ структуру.

Для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ основная Ρ†Π΅Π»ΡŒ состоит Π² прСдоставлСнии постоянного интСрфСйса. Π’ Π‘ слСдуСт Π΄ΡƒΠΌΠ°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. БистСма Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π‘ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΡƒΡŽ со Π²Ρ…ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄, Π² Π»Π΅Π³ΠΊΠΎ управляСмый ΠΏΠΎΡ‚ΠΎΠΊ.

НОУ ИНВУИВ | ЛСкция | ΠžΡΠ½ΠΎΠ²Ρ‹ языка Π‘ΠΈ: структура Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ конструированиС Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ выраТСния

Аннотация: ЛСкция посвящСна ввСдСнию Π² язык Π‘ΠΈ. ΠžΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ построСния Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° h- ΠΈ c-Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚.Π΅. Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ интСрфСйса ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, использованиС прСпроцСссора. ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΡΡ‚ΡΡ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ языка Π‘ΠΈ, конструкции массива ΠΈ указатСля, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ‚ΠΈΠΏΠΎΠ². Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ всСвозмоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ выраТСния языка Π‘ΠΈ.

ΠžΡΠ½ΠΎΠ²Ρ‹ языка Π‘ΠΈ

Π’ настоящСС врСмя язык Π‘ΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки
Π΅Π³ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹ (ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго C++, Π° Ρ‚Π°ΠΊΠΆΠ΅ Java ΠΈ C#) ΡΠ²Π»ΡΡŽΡ‚ΡΡ основными
Π² практичСском ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Достоинство языка Π‘ΠΈ — это,
ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, Π΅Π³ΠΎ простота ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ. Π―Π·Ρ‹ΠΊ Π‘ΠΈ Π»Π΅Π³ΠΊΠΎ учится.
Π“Π»Π°Π²Π½Ρ‹Π΅ понятия языка Π‘ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ статичСскиС ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅
ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, массивы, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚.Π΄., максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Ρ‹
ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Π’Π°ΠΊ, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ — это просто адрСс
памяти, массив — нСпрСрывная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ — это
ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, располоТСнныС Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ стСкС,
статичСскиС — Π² статичСской памяти. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚,
ΠΏΠΈΡˆΡƒΡ‰ΠΈΠΉ Π½Π° Π‘ΠΈ, всСгда достаточно Ρ‚ΠΎΡ‡Π½ΠΎ прСдставляСт сСбС, ΠΊΠ°ΠΊ
созданная ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° любой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅.
Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, язык Π‘ΠΈ прСдоставляСт программисту
ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык Π‘ΠΈ задумывался ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒ АссСмблСра
для написания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π‘ΠΈ — это язык
высокого уровня, Π½Π΅ зависящий ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, тСкст
ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы оказывался Π»Π΅Π³ΠΊΠΎ пСрСносимым с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π°
Π΄Ρ€ΡƒΠ³ΡƒΡŽ. ΠŸΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, написанной практичСски Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π½Π°
Π‘ΠΈ, Π±Ρ‹Π»Π° систСма Unix. Π’ настоящСС врСмя ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы написаны Π½Π° Π‘ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, срСдства программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ опСрационная систСма
прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ API —
Application Program Interface), — это Π½Π°Π±ΠΎΡ€Ρ‹ систСмных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° языкС Π‘ΠΈ.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния языка Π‘ΠΈ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ»Π°ΡΡŒ
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. Π―Π·Ρ‹ΠΊ Π‘ΠΈ оказался ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½
Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкстов ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π² Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… расчСтах.
ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки Π½Π° основС Π‘ΠΈ
ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят для программирования Π² ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… срСдах.

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ лишь основныС понятия языка
Π‘ΠΈ (ΠΈ частично C++). Π­Ρ‚ΠΎ Π½Π΅ замСняСт чтСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ° ΠΏΠΎ
Π‘ΠΈ ΠΈΠ»ΠΈ C++, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ½ΠΈΠ³ [6] ΠΈ [8].

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ компилятор C++ вмСсто CΠΈ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ,
Ρ‡Ρ‚ΠΎ язык Π‘ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² C++, Ρ‚.Π΅. Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°,
написанная Π½Π° Π‘ΠΈ, являСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ C++ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π‘Π»ΠΎΠ²ΠΎ
«Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ содСрТит Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… конструкций,
ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΎΡ‚ Ρ€Π°Π½Π½ΠΈΡ… вСрсий Π‘ΠΈ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² настоящСС
врСмя. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ C++ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‡Π΅ΠΌ компилятор Π‘ΠΈ, Ρ‚.ΠΊ.
ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ строгий ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ошибок. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅
конструкции C++, Π½Π΅ связанныС с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ,
ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ ΠΈ фактичСски ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ
языка Π‘ΠΈ. Π­Ρ‚ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ //, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ
Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² любой Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ Π±Π»ΠΎΠΊΠ°,
ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ констант Π±Π΅Π· использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° #define прСпроцСсора.
ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти возмоТности
C++, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ ΠΏΠΎ сущСству Π² Ρ€Π°ΠΌΠΊΠ°Ρ… языка Π‘ΠΈ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π›ΡŽΠ±Π°Ρ достаточно большая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘ΠΈ (программисты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ) состоит ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ². Π€Π°ΠΉΠ»Ρ‹ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π‘ΠΈ-компилятором нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-построитСлСм Π·Π°Π΄Π°Ρ‡, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ создаСтся Ρ„Π°ΠΉΠ» с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ. Π€Π°ΠΉΠ»Ρ‹, содСрТащиС тСксты Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ исходными.

Π’ языкС Π‘ΠΈ исходныС Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²:

  • Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅, ΠΈΠ»ΠΈ h-Ρ„Π°ΠΉΠ»Ρ‹;
  • Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ CΠΈ-Ρ„Π°ΠΉΠ»Ρ‹.

ИмСна Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ » .h «. ИмСна Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ » .c » для языка Π‘ΠΈ ΠΈ » .cpp «, » .cxx » ΠΈΠ»ΠΈ » .cc » для языка C++.

К соТалСнию, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языка Π‘ΠΈ, программисты Π½Π΅ сумСли Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ для Ρ„Π°ΠΉΠ»ΠΎΠ², содСрТащих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° C++. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ » .h » для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ » .cpp » для Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

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

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x, являСтся ошибкой. ВмСсто этого слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ описаниС

ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ пСрСмСнная x ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π³Π΄Π΅-Ρ‚ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π² ΠΊΠ°ΠΊΠΎΠΌ — нСизвСстно). Π‘Π»ΠΎΠ²ΠΎ extern (внСшняя) лишь сообщаСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ внСшнСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π½Π΅ опрСдСляСт эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

Π€Π°ΠΉΠ»Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ CΠΈ-Ρ„Π°ΠΉΠ»Ρ‹, содСрТат тСксты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ опрСдСлСния Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Говоря ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ, Π‘ΠΈ-Ρ„Π°ΠΉΠ»Ρ‹ содСрТат сами ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° h-Ρ„Π°ΠΉΠ»Ρ‹ — лишь ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

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

Π€Π°ΠΉΠ»Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ описания, содСрТащиСся Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. Π‘Π°ΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора #include. НапримСр, описания стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ строки

(stdio — ΠΎΡ‚ слов standard input/output). Имя h-Ρ„Π°ΠΉΠ»Π° записываСтся Π² ΡƒΠ³Π»ΠΎΠ²Ρ‹Ρ… скобках, Ссли этот h-Ρ„Π°ΠΉΠ» являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ стандартной Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ располоТСн Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· систСмных ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². ИмСна h-Ρ„Π°ΠΉΠ»ΠΎΠ², созданных самим программистом Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ располоТСнных Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкста
нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ трансляциСй. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ прСпроцСссора Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора содСрТат символ Π΄ΠΈΠ΅Π· # Π² Π½Π°Ρ‡Π°Π»Π΅
строки. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² основном для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ h-Ρ„Π°ΠΉΠ»ΠΎΠ².
Π’ Π‘ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #define для задания
символичСских ΠΈΠΌΠ΅Π½ констант. Π’Π°ΠΊ, строка

Π·Π°Π΄Π°Π΅Ρ‚ символичСскоС имя PI для константы 3.14159265. ПослС этого
имя PI ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто числового значСния. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€
Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ всС вхоТдСния слова PI Π² тСкст ΠΈ замСняСт ΠΈΡ… Π½Π° константу.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, прСпроцСссор осущСствляСт ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ тСкста Π΄Ρ€ΡƒΠ³ΠΈΠΌ.
ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ использования прСпроцСссора всСгда ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ
нСдостаточной Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ языка. Π’Π°ΠΊ, Π² любом АссСмблСрС срСдства
прСпроцСссирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ довольно интСнсивно. Π’ Π‘ΠΈ ΠΏΠΎ возмоТности
слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ увлСчСния ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ прСпроцСссора — это
затрудняСт ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ
исправляСмым ошибкам. Π’ C++ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· использования Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² #define для задания констант. НапримСр, Π² C++ константу PI ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ описания

const double PI = 3.14159265;

Π­Ρ‚ΠΎ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ примСнСния компилятора
C++ вмСсто Π‘ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ трансляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π΅ содСрТащих конструкции
класса.

БоглашСниС ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ — BBC News Русская слуТба

ΠΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ соглашСниС касаСтся ΠΏΡ€Π°Π²ΠΈΠ» Π‘ΠΈ-Π±ΠΈ-си ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, прСдоставляСмой администрации сайта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ.

Π”Π°Π½Π½ΠΎΠ΅ соглашСниС касаСтся использования Π‘ΠΈ-Π±ΠΈ-си Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠΉ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ сайта bbcrussian.com. Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ содСрТится информация ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… «cookie», ΠΎΠ± использовании Ρ„Π°ΠΉΠ»ΠΎΠ² «cookie» Π‘ΠΈ-Π±ΠΈ-си ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌΠΈ сторонами, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ сСбС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, имя ΠΈ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ услугами Π½Π° сайтС bbcrussian.com. Π‘Ρ€Π΅Π΄ΠΈ Ρ‚Π°ΠΊΠΈΡ… услуг — подписка Π½Π° ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ рассылку новостСй, конкурсы ΠΈ участиС Π² Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… сайта.

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

2. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ для посСтитСлСй

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

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ посрСдством «cookie»-Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π²Π°ΠΌ наши услуги Π² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для вас Π²ΠΈΠ΄Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ Π½Π°ΡˆΠΈΡ… читатСлях. НапримСр: Ссли, зайдя Π½Π° наш сайт, Π²Ρ‹ посСтили Ρ€Π°Π·Π΄Π΅Π» «ΠΠ°ΡƒΠΊΠ° ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°», Ρ‚ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ± этом ΠΈΠ· «cookie» ΠΈ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· этого Ρ€Π°Π·Π΄Π΅Π»Π° Π²ΠΎ врСмя Π²Π°ΡˆΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… посСщСний сайта.

НСзависимая компания Nielsen//Netratings, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π°ΡΡΡ сбором ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ статистичСских Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚ нашСго ΠΈΠΌΠ΅Π½ΠΈ собираСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π΅Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° ΠΎ посСтитСлях сайта bbcrussian.com с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² «cookie», записСй ΠΎ посСщСниях сайта ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° нашСм сайтС. Π‘ΠΈ-Π±ΠΈ-си ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ посрСдством Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² «cookie» Π½Π° сайтС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ услуги, прСдоставляСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ «cookie» ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Nielsen//Netratings, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ способом, описанным Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 7 этого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ прСдоставлСния ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²Π°ΡˆΠΈΡ… посСщСниях сайта bbcrussian.com ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Nielsen//Netratings, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ «Opt-Out» БоглашСния ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°

сайтС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

3. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «cookie»

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

МногиС сайты Π²Ρ‹ΡΡ‹Π»Π°ΡŽΡ‚ «cookie»-Ρ„Π°ΠΉΠ», ΠΊΠΎΠ³Π΄Π° Π½Π° Π½ΠΈΡ… Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅Π»ΡŒ: Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ осущСствляСтся подсчСт количСства посСщСний сайта.

Π’ Ρ„Π°ΠΉΠ»Π°Ρ… «cookie» хранится информация ΠΎ Π²Π°ΡˆΠΈΡ… прСдпочтСниях Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свои ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ автоматичСски ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ всС Ρ„Π°ΠΉΠ»Ρ‹ «cookie», Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° сайт пытаСтся Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой «cookie» Π½Π° ТСсткий диск ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π»ΠΈΠ±ΠΎ вовсС Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… «cookie»-Ρ„Π°ΠΉΠ»ΠΎΠ². ПослСдний Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ услуги Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдоставлСны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, Π²Ρ‹Π±Ρ€Π°Π²ΡˆΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ настройки, Π½Π΅ смогут ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊΠΎ всСм Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ сайта bbcrussian.com.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ «ΠŸΠΎΠΌΠΎΡ‰ΡŒ» вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ «cookie».

Если Π²Ρ‹ настроили свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π½Π° ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π·Π°ΠΏΡ€Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ° «cookie» Ρ„Π°ΠΉΠ»ΠΎΠ², Π²Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎ ΠΏΠΎΡΠ΅Ρ‰Π°Ρ‚ΡŒ сайт bbcrussian.com Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· услуг сайта. Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… «cookie» посСтитС сайт www.aboutcookies.org.

4. ИспользованиС ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Когда Π²Ρ‹ прСдоставляСтС Π»ΡŽΠ±ΡƒΡŽ Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ сайту bbcrussian.com (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, для участия Π² конкурсах ΠΈΠ»ΠΈ для подписки Π½Π° рассылку новостСй), Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, рСгулируСтся Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ. ΠœΡ‹ обязаны, собирая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅ΠΉ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ (Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС ΠΌΡ‹ объясняСм, для Ρ‡Π΅Π³ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Ρ‚Π° ΠΈΠ»ΠΈ иная информация ΠΎ вас). ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ обязаны ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΎ своих намСрСниях ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π΅Ρ‰Π΅.

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

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

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

5. Доступ ΠΊ вашСй Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

Π’Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΎ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ копию Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ ΠΎ вас Ρƒ Π‘ΠΈ-Π±ΠΈ-си, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ нСточности (ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ составляСт 10 Ρ„ΡƒΠ½Ρ‚ΠΎΠ² стСрлингов). Π’Π°ΡˆΠΈ ΠΏΡ€ΠΎΡΡŒΠ±Ρ‹ направляйтС ΠΏΠΎ адрСсу: Data Protection Officer, MC3 D1, Media Village, 201 Wood Lane, London, W12 7TQ (адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹: [email protected]).

6. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ младшС 16 Π»Π΅Ρ‚

Если Π²Π°ΠΌ 16 Π»Π΅Ρ‚ ΠΈΠ»ΠΈ мСньшС, поТалуйста, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ/ΠΎΠΏΠ΅ΠΊΡƒΠ½ΠΎΠ², ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π‘ΠΈ-Π±ΠΈ-си. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π·Π°ΠΊΠΎΠ½ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π°ΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

7. Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ «cookie»

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» «cookie», просто ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Π½Π΅Π³ΠΎ. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ нСбольшоС количСство тСкста ΠΈ Ρ†ΠΈΡ„Ρ€. Π­Ρ‚ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ вашим Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΈΠ΄Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠΌΡƒ сСрвСру, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записал этот «cookie» Π½Π° ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ «БоглашСниСм ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ» Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° основном сайтС Π‘ΠΈ-Π±ΠΈ-си (Π½Π° английском языкС):

http://www.bbc.co.uk/privacy

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ Π½Π° Π‘ΠΈ.

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток. БСгодня ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅, Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Π‘ΠΈ. Π‘Ρ€Π°Π·Ρƒ скаТу, Ссли Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ этой Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ, Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ составит Ρ‚Ρ€ΡƒΠ΄Π° Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅. Π˜Ρ‚Π°ΠΊ, Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΠΈΠ½Ρƒ.

ВывСсти Π² Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ пятоС число ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° [-45; 67]. Числа Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² строках ΠΏΠΎ восСмь чисСл Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ. ВывСсти Π½Π° экран Π² столбик всС числа ΠΈΠ· этого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° с послСднСй Ρ†ΠΈΡ„Ρ€ΠΎΠΉ Ρ€Π°Π²Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π° for().

Код:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	FILE*open;
	open = fopen("open.txt","w");
        int n = 67, i = -45, e = 1;
	for (i = -45; i <= n ;i += 5, e++){
		if (e < 8) {
			fprintf(open,"%d,", i);
		}
		else {
			e = 0; fprintf(open,"%d,\n", i);
		}
	}
	for (i = -45; i <= n; i ++ ){
		if (i % 10 == 1 || i % 10 == -1) {
			fprintf(open,"\n%d", i);
		}
	}
	fclose(open);
	return EXIT_SUCCESS;
}

Π’Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅:

Π”Π°ΠΆΠ΅ Π½Π΅ знаю ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Ρ‚ΡƒΡ‚ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Ρ‹, ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ нСзамысловатый. =)
Π”Π°Π²Π°ΠΉΡ‚Π΅, Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ:

ВывСсти Π² Ρ„Π°ΠΉΠ» Π΄Π΅ΡΡΡ‚ΡŒ случайных чисСл ΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… сСми ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° [-578; 832]. Числа Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² строчку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»Π΅ для Π²Ρ‹Π²ΠΎΠ΄Π° Π² 5 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π° for().

Код:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
	FILE*open;
	open = fopen("open.txt", "w");
	int n = 0, e = 0;
	for (e = 1 ; e <= 10 ; ){
		n = -578 + rand() % (832 + 578 + 1);
		if (n % 7== 0){
			e++;
			fprintf(open,"%5d", n);
		}
	}
	fclose(open);
	return EXIT_SUCCESS;
}

Π’Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅:

Π‘ΡƒΡ‚ΡŒ этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ e Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаСм, Ссли Β«Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎΠ΅Β» число ΠΊΡ€Π°Ρ‚Π½ΠΎ 7.
К соТалСнию, большС Π½ΠΈΡ‡Π΅Π³ΠΎ интСрСсного Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π΅Ρ‚.

ВвСсти с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число. Если это число окаТСтся ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚ΠΎ цикличСски ΠΎΡ‚Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΡ‚ Π½Π΅Π³ΠΎ 5 Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π½Π΅ станСт ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Если ΠΎΠ½ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ноль, Ρ‚ΠΎ цикличСски ΠΏΡ€ΠΈΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ случайныС Π΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ числа Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π½Π΅ прСвысит 35. ВывСсти Π½Π° экран Π² столбик ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ значСния числа Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ «число + случайноС_число = Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Β». Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π° while ΠΈΠ»ΠΈ do- while.

Код:

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

	double n = 0,t = 0, r = 0;
	scanf("%lf", &n);
	if (n > 0) {
		do {
			n -= 5;
		}while (n >= 0);
		printf("Число ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ %+.3lf", n);
	}
	else {
		while (n<= 35) {
			t = rand() % 100 / 10.0;
			r += n+t;
			printf("%.3lf + %.3lf = %.3lf\n", n, t, r);
			n += t;
		}
	}
	return EXIT_SUCCESS;
}

Напомню, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SetConsoleCP(1251), SetConsoleOutputCP(1251) ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ windows.h ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² консоль. Π’ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного Π½Π΅Ρ‚. Но, Ссли всё-Ρ‚Π°ΠΊΠΈ Π½Π΅ понятно β€” ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях.
И послСдний на сСгодня:

ВвСсти с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Ρ†Π΅Π»ΠΎΠ΅ число. ВывСсти Π½Π° экран ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… ΠΈ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ Π² этом числС. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ для Π΅Ρ‰Π΅ дСсяти Ρ‚Π°ΠΊΠΈΡ… чисСл. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π° while для подсчСта произвСдСния Ρ†ΠΈΡ„Ρ€.

Код:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>

int main(void) {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
	int n = 0, chet = 1, nechet = 1, i=0;
	for (i=1; i <= 10; i++) {
        chet = 1;
        nechet = 1;
		scanf("%d", &n);
		while (n>0){
			if (n % 10 % 2 == 0) {
				chet *= n % 10;
				n /= 10;
			}
			else {
				nechet *= n % 10;
				n /= 10;
			}
		}
        printf("ΠŸΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… = %d, ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… = %d\n", chet, nechet);
	}

	return EXIT_SUCCESS;
}

Π‘ΡƒΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² ΠΎΡ‚Ρ€Π΅Π·Π°Π½ΠΈΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Π΅ справа числа, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ % ( Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π΅Π· остатка ). ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ чётная Ρ†ΠΈΡ„Ρ€Π° ΠΈΠ»ΠΈ Π½Π΅Ρ‚, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ. Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ 0 относится ΠΊ Ρ‡Ρ‘Ρ‚Π½Ρ‹ΠΌ Π² нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Π’ΠΎΡ‚ ΠΈ всё. ΠŸΠΈΡˆΠΈΡ‚Π΅ вопросы, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅, всСм ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠΌ.

ВсС исходники Π±Π΅Π· Ρ„Π°ΠΉΠ»ΠΎΠ² txt.
Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходники Π·Π°Π΄Π°Ρ‡ΠΈ β€” 1
Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходники Π·Π°Π΄Π°Ρ‡ΠΈ β€” 2
Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходники Π·Π°Π΄Π°Ρ‡ΠΈ β€” 3
Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходники Π·Π°Π΄Π°Ρ‡ΠΈ β€” 4

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ссылкой:

ΠŸΠΎΡ…ΠΎΠΆΠ΅Π΅

C: Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ — Linux FAQ

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

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ исходного ΠΊΠΎΠ΄Π° прилоТСния ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #include.

#include "sums.h"

Данная Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° отличаСтся ΠΎΡ‚ Ρ€Π°Π½Π΅Π΅ рассмотрСнных Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ систСмных Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ вмСсто скобок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

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

#ifndef SUMS_H
#define SUMS_H
…
#endif /*SUMS_H*/

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π½Π° основС ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ критСрия. НапримСр, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΎΠ΄Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” для Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСпроцСссора.

#if x86_64
#include "system64.h"
#elif x86
#include "system32.h"
#endif

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ Π΄Π°Π½Π½ΠΎΠΌ простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция Π²Ρ‹Π²ΠΎΠ΄Π° привСтствия находится Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ исходного ΠΊΠΎΠ΄Π° (hello.c), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ основному Ρ„Π°ΠΉΠ»Ρƒ исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (hellomain.c) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (hello.h).

Π­Ρ‚ΠΎ содСрТимоС Ρ„Π°ΠΉΠ»Π° исходного ΠΊΠΎΠ΄Π° hello.c:

  1. #include <stdio.h>

  2. Β 

  3. void print_hello(void)

  4. {


  5. Β  Β  Β  Β  printf(«Hello worldn»);
  6. }

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

Π­Ρ‚ΠΎ β€” содСрТимоС Ρ„Π°ΠΉΠ»Π° исходного ΠΊΠΎΠ΄Π° hello.h:

  1. #ifndef HELLO_H

  2. #define HELLO_H

  3. Β 

  4. void print_hello(void);

  5. Β 

  6. #endif /*HELLO_H*/

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

А это β€” содСрТимоС Ρ„Π°ΠΉΠ»Π° исходного ΠΊΠΎΠ΄Π° hellomain.c:

  1. #include <stdio.h>

  2. #include «hello.h»

  3. Β 

  4. int main()

  5. {

  6. Β  Β  Β  Β  print_hello();

  7. Β  Β  Β  Β 

  8. Β  Β  Β  Β  return 0;

  9. }

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, всС ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ просто. ЕдинствСнным нюансом являСтся компиляция ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° компилируСтся ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, послС Ρ‡Π΅Π³ΠΎ производится связываниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π’ случаС рассматриваСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ компиляция Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄:

$ gcc -c hello.c -o hello.o
$ gcc -c hellomain.c -o hellomain.o
$ gcc hello.o hellomain.o -o hello

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ компиляции ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ вСсомоС прСимущСство: ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ повторная компиляция лишь этих Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π½Π΅ всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, вмСстС с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ связываниСм).

1.6.1. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅
На ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ страницу ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ 1.5.3. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main

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

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ структурС исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, находящиСся Π² Ρ€Π°Π·Π½Ρ‹Ρ… исходных Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ внСшниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² языкС Π‘ΠΈ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ внСшниС ΠΈ всСгда доступны ΠΈΠ· Π»ΡŽΠ±Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². НапримСр, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· Π΄Π²ΡƒΡ… исходных Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис.2., Ρ‚ΠΎ функция main ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ fun1, fun2, fun3, Π° каТдая ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ.
Β 


 main ()
 {  ...
 }     
 fun1()
 {  ...
 }     
.

 fun2()
 {  ...
 }
 fun3()
 {  ...
 }
file1.cfile2.c
Рис.2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
ΠΈΠ· Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ опрСдСляСмая функция ΠΌΠΎΠ³Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π»ΠΈΠ±ΠΎ дСйствия, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ языкС БИ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π΄ΠΎ ΠΈΡ… использования. ОбъявлСния ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ соотвСтствиС ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ°. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для хранСния Π΅Π΅ значСния. Класс выдСляСмой памяти опрСдСляСтся спСцификатором класса памяти, ΠΈ опрСдСляСт врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΠ²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, связанныС с понятиСм Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
Β 

Π’ языкС БИ Π±Π»ΠΎΠΊΠΎΠΌ считаСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ объявлСний, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Π²ΠΈΠ΄Π° Π±Π»ΠΎΠΊΠΎΠ² -составной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, состоящСС ΠΈΠ· составного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ‚Π΅Π»ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅Π»Ρƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ входят имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΈΠΏΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²). Π‘Π»ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя составныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π½ΠΎ Π½Π΅ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π±Π»ΠΎΠΊ называСтся Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ, Π° внСшний Π±Π»ΠΎΠΊ β€” ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰ΠΈΠΌ.
Β 

ВрСмя ΠΆΠΈΠ·Π½ΠΈ β€” это ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (пСрСмСнная ΠΈΠ»ΠΈ функция) сущСствуСт. ВрСмя ΠΆΠΈΠ·Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ»ΠΈΠ³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ для Π½Π΅Π΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° протяТСнии всСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, начиная с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° выполнСния объявлСния этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ для Π½Π΅Π³ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния Π±Π»ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эта пСрСмСнная ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΈΠ»ΠΈ объявлСна. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Π±Π»ΠΎΠΊ для локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ распрСдСляСтся новая ΠΏΠ°ΠΌΡΡ‚ΡŒ, которая освобоТдаСтся ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Π±Π»ΠΎΠΊΠ°.
Β 

ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² БИ ΠΈΠΌΠ΅ΡŽΡ‚ глобальноС врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
Β 

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости β€” это Ρ‡Π°ΡΡ‚ΡŒ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ считаСтся Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π² Π±Π»ΠΎΠΊΠ΅ ΠΈΠ»ΠΈ Π² исходном Ρ„Π°ΠΉΠ»Π΅, Ссли Π² этом Π±Π»ΠΎΠΊΠ΅ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π΅ извСстны имя ΠΈ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π±Π»ΠΎΠΊΠ°, исходного Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π²ΠΎ всСх исходных Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ объявлСн ΠΎΠ±ΡŠΠ΅ΠΊΡ‚: Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ, Ρ‚.Π΅. Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΈΠ»ΠΈ Π½Π° внСшнСм,Ρ‚.Π΅. Π²Π½Π΅ всСх Π±Π»ΠΎΠΊΠΎΠ².
Β 

Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ объявлСн Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°, Ρ‚ΠΎ ΠΎΠ½ Π²ΠΈΠ΄ΠΈΠΌ Π² этом Π±Π»ΠΎΠΊΠ΅, ΠΈ Π²ΠΎ всСх Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π±Π»ΠΎΠΊΠ°Ρ…. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ объявлСн Π½Π° внСшнСм ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‚ΠΎ ΠΎΠ½ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΅Π³ΠΎ объявлСния Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ исходного Ρ„Π°ΠΉΠ»Π°.
Β 

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сдСлан глобально Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… объявлСний Π²ΠΎ всСх исходных Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.
Β 

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ класса памяти Π² объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ auto, register, static ΠΈΠ»ΠΈ extern. Если класс памяти Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Ρ‚ΠΎ ΠΎΠ½ опрСдСляСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· контСкста объявлСния.
Β 

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов auto ΠΈ register ΠΈΠΌΠ΅ΡŽΡ‚ локальноС врСмя ΠΆΠΈΠ·Π½ΠΈ. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ static ΠΈ extern ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ.
Β 

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован любой ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… спСцификаторов класса памяти, Π° Ссли ΠΎΠ½ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Ρ‚ΠΎ подразумСваСтся класс памяти auto.
Β 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с классом памяти auto ΠΈΠΌΠ΅Π΅Ρ‚ локальноС врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΈ Π²ΠΈΠ΄Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π±Π»ΠΎΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ объявлСна. ΠŸΠ°ΠΌΡΡ‚ΡŒ для Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ выдСляСтся ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² Π±Π»ΠΎΠΊ ΠΈ освобоТдаСтся ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Π±Π»ΠΎΠΊΠ°. ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Π±Π»ΠΎΠΊ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ Π΄Ρ€ΡƒΠ³ΠΎΠΉ участок памяти.
Β 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с классом памяти auto автоматичСски Π½Π΅ инициализируСтся. Она Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° явно ΠΏΡ€ΠΈ объявлСнии ΠΏΡƒΡ‚Π΅ΠΌ присвоСния Π΅ΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с классом памяти auto считаСтся Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ.
Β 

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ со спСцификатором класса памяти static, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Π±Π»ΠΎΠΊΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Π±Π»ΠΎΠΊ. Вакая пСрСмСнная ΠΈΠΌΠ΅Π΅Ρ‚ глобальноС врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° объявлСна. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с классом auto, ΠΏΠ°ΠΌΡΡ‚ΡŒ для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выдСляСтся Π² стСкС, для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с классом static ΠΏΠ°ΠΌΡΡ‚ΡŒ выдСляСтся Π² сСгмСнтС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ поэтому ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сохраняСтся ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Π±Π»ΠΎΠΊΠ°.
Β 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
     ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
  /*  объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅
            с  классом памяти static.                    */
  /*   исходный Ρ„Π°ΠΉΠ» file1.c       */
     main()
        { ...
        }
     fun1()
        {  static int i=0; ...
        }
   /* исходный Ρ„Π°ΠΉΠ»   file2.c       */
     fun2()
        {  static int i=0; ...
        }
     fun3()
        {  static int i=0; ...
        }

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
/* объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅
с классом памяти static. */
/* исходный Ρ„Π°ΠΉΠ» file1.c */
main()
{ …
}
fun1()
{ static int i=0; …
}
/* исходный Ρ„Π°ΠΉΠ» file2.c */
fun2()
{ static int i=0; …
}
fun3()
{ static int i=0; …
}

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с классом памяти static, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° i. КаТдая ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ глобальноС врСмя ΠΆΠΈΠ·Π½ΠΈ, Π½ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° объявлСна. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для подсчСта числа ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ
ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
Β 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса памяти static ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ константным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Если явной ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅Ρ‚, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ присваиваСтся Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ константным адрСсным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ адрСса Π»ΡŽΠ±Ρ‹Ρ… Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΡ€ΠΎΠΌΠ΅ адрСсов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с классом памяти auto, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ адрСс послСдних Π½Π΅ являСтся константой ΠΈ измСняСтся ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Π±Π»ΠΎΠΊ. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Π±Π»ΠΎΠΊ.
Β 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, объявлСнная локально с классом памяти extern, являСтся ссылкой Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с Ρ‚Π΅ΠΌ ΠΆΠ΅ самым ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ глобально Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ЦСль Ρ‚Π°ΠΊΠΎΠ³ΠΎ объявлСния состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ глобального уровня Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°.
Β 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
     ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
  /*   объявлСния  ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ  i,  ΡΠ²Π»ΡΡŽΡ‰Π΅ΠΉΡΡ  ΠΈΠΌΠ΅Π½Π΅ΠΌ внСшнСго
       массива Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл, Π½Π° локальном ΡƒΡ€ΠΎΠ²Π½Π΅      */
  /*      исходный Ρ„Π°ΠΉΠ»    file1.c          */
     main()
        { ...
        }
     fun1()
        { extern long i[]; ...
        }
  /*     исходный Ρ„Π°ΠΉΠ»      file2.c         */
     long i[MAX]={0};
     fun2()
        {  ...
        }
     fun3()
        {  ...
        }

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
/* объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i, ΡΠ²Π»ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ внСшнСго
массива Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл, Π½Π° локальном ΡƒΡ€ΠΎΠ²Π½Π΅ */
/* исходный Ρ„Π°ΠΉΠ» file1.c */
main()
{ …
}
fun1()
{ extern long i[]; …
}
/* исходный Ρ„Π°ΠΉΠ» file2.c */
long i[MAX]={0};
fun2()
{ …
}
fun3()
{ …
}

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i[] ΠΊΠ°ΠΊ extern Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fun1. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ находится Π² Ρ„Π°ΠΉΠ»Π΅ file2.c Π½Π° глобальном ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ объявлСний с классом памяти extern ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько.
Β 

ОбъявлСниС с классом памяти extern трСбуСтся ΠΏΡ€ΠΈ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ исходном Ρ„Π°ΠΉΠ»Π΅, Π½ΠΎ Π½ΠΈΠΆΠ΅ ΠΏΠΎ тСксту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚.Π΅. Π΄ΠΎ выполнСния Π΅Π΅ глобального опрСдСлСния. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ использованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ st.
Β 

1
2
3
4
5
6
7
8
     ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
     main()
     { extern int st[]; ...
     }
     static int st[MAX]={0};
     fun1()
     {   ...
     }

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
main()
{ extern int st[]; …
}
static int st[MAX]={0};
fun1()
{ …
}

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ со спСцификатором extern ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ компилятор ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ трСбуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
Β 

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° глобальном ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован спСцификатор класса памяти static ΠΈΠ»ΠΈ extern, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±Π΅Π· указания класса памяти. ΠšΠ»Π°ΡΡΡ‹ памяти auto ΠΈ register для глобального объявлСния нСдопустимы.
Β 

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° глобальном ΡƒΡ€ΠΎΠ²Π½Π΅ β€” это ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΠ»ΠΈ ссылки Π½Π° опрСдСлСния, сдСланныС Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ОбъявлСниС глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ (явно ΠΈΠ»ΠΈ нСявно), являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° глобальном ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…:
Β 

1. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ объявлСна с классом памяти static. Вакая пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° явно константным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π’ΠΎ Π΅ΡΡ‚ΡŒ обявлСния static int i=0 ΠΈ static int i эквивалСнтны, ΠΈ Π² ΠΎΠ±ΠΎΠΈΡ… случаях ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.
Β 

2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ объявлСна Π±Π΅Π· указания класса памяти, Π½ΠΎ с явной ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π’Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ присваиваСтся класс памяти static. Π’ΠΎ Π΅ΡΡ‚ΡŒ объявлСния int i=1 ΠΈ static int i=1 Π±ΡƒΠ΄ΡƒΡ‚ эквивалСнтны.
Β 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ объявлСнная глобально Π²ΠΈΠ΄ΠΈΠΌΠ° Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… остатка исходного Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°. Π’Ρ‹ΡˆΠ΅ своСго описания ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… исходных Ρ„Π°ΠΉΠ»Π°Ρ… эта пСрСмСнная Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠ° (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π° Π½Π΅ объявлСна с классом extern).
Β 

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… своСй области видимости. Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΌ исходном Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСна другая глобальная пСрСмСнная с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ с классом памяти static, ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΏΡ€ΠΈ этом Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ каТдая ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² своСм исходном Ρ„Π°ΠΉΠ»Π΅.
Β 

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ класса памяти extern для Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΈ для локального объявлСния, Π² качСствС ссылки Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½ΡƒΡŽ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚.Π΅. для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ области видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ объявлСнии ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° исходного Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сдСлано объявлСниС.
Β 

Π’ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… с классом памяти extern Π½Π΅ допускаСтся инициализация, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти объявлСния ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.
Β 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ дСлаСтся ссылка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСцификатора extern, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
Β 

Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅. Π Π°Π·Π΄Π΅Π» 1.6.2. ОбъявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π€Π°ΠΉΠ» C (Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ)

Π€Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .C прСдставляСт собой тСкстовый Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π° C / C ++. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ исходный ΠΊΠΎΠ΄ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС программирования C ΠΈΠ»ΠΈ C ++, Ρ‚Π°ΠΊ ΠΈ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° C.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° c Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС для обозначСния Ρ„Π°ΠΉΠ»Π° исходного ΠΊΠΎΠ΄Π° C ΠΈ C Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС для C ++, Π½ΠΎ это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. CPP Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° C ++.

Если Ρ„Π°ΠΉΠ» C Π½Π΅ Π½Π° языкС программирования C ΠΈΠ»ΠΈ C ++, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» сцСнария Lite-C, написанный Π½Π° lite-C, языкС программирования, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌ C / C ++.

Оба эти Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² связаны с прилоТСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€.

CFile Ρ‚Π°ΠΊΠΆΠ΅ относится ΠΊ классам Ρ„Π°ΠΉΠ»ΠΎΠ² Microsoft Foundation Class, Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, описанными здСсь.

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» C

Π›ΡŽΠ±ΠΎΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Notepad ++, Emacs, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Windows Notepad, EditPlus, TextMate ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» C, Ссли это Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π° C / C ++.

Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ лСгковСсны ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… пСрСчислСнным Π½ΠΈΠΆΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ просСиваниС исходного ΠΊΠΎΠ΄Π°.

Однако Ρ„Π°ΠΉΠ»Ρ‹ C ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² контСкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Visual Studio, Eclipse, C ++ Builder, Dev-C ++ ΠΈΠ»ΠΈ Code :: Blocks.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° lite-C ΠΎΡ‚ Conitec Datasystems являСтся основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ сцСнария Lite-C, Π½ΠΎ эти Ρ„Π°ΠΉΠ»Ρ‹ C Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².

Как ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ C

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ряд ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, связанных с C ΠΈ C ++, Π½ΠΎ ΠΎΠ½ΠΈ выходят Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык программирования для прСобразования Π² ΠΈΠ»ΠΈ ΠΈΠ· массива символов, Ρ†Π΅Π»Ρ‹Ρ… чисСл, строк ΠΈ Ρ‚. Π”., Но это Π½Π΅ относится ΠΊ самим Ρ„Π°ΠΉΠ»Π°ΠΌ C, Π° скорСС ΠΊ функциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚.

Если это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Stack Overflow.

Однако, Ссли Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² C, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ срСдства открытия Ρ„Π°ΠΉΠ»ΠΎΠ² C, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅, для прСобразования ΠΈΠ»ΠΈ сохранСния Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ TXT ΠΈΠ»ΠΈ HTML.Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, ΠΎΠ½ΠΈ большС Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° с Eclipse, Dev-C ++ ΠΈ Ρ‚. Π”., Если ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π°.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ряд ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, доступных ΠΎΡ‚ Tangible Software Solutions, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ C ++ Π² C #, Java ΠΈΠ»ΠΈ VB. Однако ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ бСсплатныС выпуски ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ количСствС строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

По-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ удаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»?

Учитывая, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° C — это всСго лишь ΠΎΠ΄Π½Π° Π±ΡƒΠΊΠ²Π°, Π»Π΅Π³ΠΊΠΎ ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ„Π°ΠΉΠ»ΠΎΠΌ C.Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Π½Π° Ρ‡Ρ‚ΠΎ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ссли Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ вСроятно, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π° самом Π΄Π΅Π»Π΅ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ Π½Π΅ с Ρ„Π°ΠΉΠ»ΠΎΠΌ C.

НапримСр, Ссли Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ свой Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ это Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π°, Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρƒ вас, вСроятно, Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ» CAB ΠΈΠ»ΠΈ CSH.

CS — ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° Visual C # ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмы ColorSchemer Studio.Если Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» CS, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Ρ‹ C, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с содСрТимым, написанным Π½Π° языкС C Sharp. Однако послСдний Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ с ColorSchemer Studio ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ C Sharp ΠΈΠ»ΠΈ C.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² этих ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π΅ΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Π° Β«CΒ», Π½ΠΎ это Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ связаны с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² C, описанным Π½Π° этой страницС.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ это ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° CSH ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ нСтСкстовый Ρ„Π°ΠΉΠ» Π² Adobe Photoshop (это Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΠΎΡ€ΠΌ), Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ» сцСнария ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ C, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² зависимости ΠΎΡ‚ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ CS), Π½ΠΎ это Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π° C / C ++ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ пСрСчислСнном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π°Π΄.

Бпасибо, Ρ‡Ρ‚ΠΎ сообщили Π½Π°ΠΌ ΠΎΠ± этом!

РасскаТитС, ΠΏΠΎΡ‡Π΅ΠΌΡƒ!

Π”Ρ€ΡƒΠ³ΠΎΠΉ

НСдостаточно подробностСй

Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ

Как ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° C: Π§Π°ΡΡ‚ΡŒ 1

Часто говорят, Ρ‡Ρ‚ΠΎ искусство программирования — это Ρ‡Π°ΡΡ‚ΡŒ управлСния ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‰Π΅ΠΉ. Π― ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽ, Ρ‡Ρ‚ΠΎ это Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни Π²Π΅Ρ€Π½ΠΎ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ слов Β«ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° для этого Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ€Π°ΠΌΠΊΠΈ для рисования».

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π½Π°Π·ΠΎΠ²Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ ΠΈ ΠΏΡ€ΠΎΡΡΠ½ΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слоТности ΠΏΡ€ΠΈ написании нСбольшой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° C, которая слабо основана Π½Π° структурС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я обсуТдал Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CΒ», Π½ΠΎ отличаСтся.Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ сдСлаСт. Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ свой Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Π½Π°ΠΏΠΈΡ‚ΠΎΠΊ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ компилятор, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ нСсколько ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ ΠΈ Π΄Π°Π²Π°ΠΉΡ‚Π΅ вмСстС напишСм Π² ΠΌΠ΅Ρ€Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС C.

Ѐилософия Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Unix-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎΠ± этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C, — это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Unix. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСнСсСн Π½Π° Π½ΠΈΡ…), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ срСду выполнСния Unix C. Когда Unix Π±Ρ‹Π»Π° ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π° Π² Bell Labs, ΠΎΠ½Π° с самого Π½Π°Ρ‡Π°Π»Π° Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠΏΠΈΡ‚Π°Π½Π° философиСй Π΄ΠΈΠ·Π°ΠΉΠ½Π°.По ΠΌΠΎΠΈΠΌ собствСнным словам: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ, Π΄Π΅Π»Π°ΡŽΡ‚ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ . Π₯отя Π΅ΡΡ‚ΡŒ смысл Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ касаСтся Β«Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈΒ», каТСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ нСумСстным.

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, абстракция Unix Β«Ρ„Π°ΠΉΠ»Π°Β» ΠΎΡ‡Π΅Π½ΡŒ мощная. Π€Π°ΠΉΠ» Unix — это ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заканчиваСтся ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° (EOF). Π’ΠΎΡ‚ ΠΈ всС. Π›ΡŽΠ±Π°Ρ другая структура Ρ„Π°ΠΉΠ»Π° опрСдСляСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма прСдоставляСт систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ стандартных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ: ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись, поиск ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ (Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹).Бтандартизация доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ позволяСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС, Π΄Π°ΠΆΠ΅ Ссли Ρ€Π°Π·Π½Ρ‹Π΅ люди Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΈΡ… Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования.

НаличиС ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ интСрфСйса позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Ρ‚ΡŒ . Π’Ρ‹Ρ…ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. БСмСйство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Unix ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ прСдоставляСт Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: стандартный Ρ„Π°ΠΉΠ» ( stdin ), стандартный Ρ„Π°ΠΉΠ» Π²Ρ‹Π²ΠΎΠ΄Π° ( stdout ) ΠΈ стандартный Ρ„Π°ΠΉΠ» ошибок ( stderr ).Π”Π²Π° ΠΈΠ· этих Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для записи: stdout ΠΈ stderr , Π° stdin ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ это Π² дСйствии всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Bash:

.

  $ ls | grep foo | sed -e 's / bar / baz / g'> ack  

Π­Ρ‚Ρƒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ: Π²Ρ‹Π²ΠΎΠ΄ ls записываСтся Π² стандартный Π²Ρ‹Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСнаправляСтся Π½Π° стандартный Π²Π²ΠΎΠ΄ grep , Ρ‡Π΅ΠΉ стандартный Π²Ρ‹Π²ΠΎΠ΄ пСрСнаправляСтся Π½Π° sed , Ρ‡Π΅ΠΉ стандартный Π²Ρ‹Π²ΠΎΠ΄ пСрСнаправляСтся для записи Π² Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ ack Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π² этой экосистСмС ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ Π³ΠΈΠ±ΠΊΠΈΡ… ΠΈ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ напишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ записываСт Ρ„Π°ΠΉΠ»Ρ‹.

MeowMeow: концСпция ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° / Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°

Когда я Π±Ρ‹Π» малСньким ΠΌΠ°Π»ΡŒΡ‡ΠΈΠΊΠΎΠΌ с Ρ€ΠΎΠ·ΠΎΠ²Ρ‹ΠΌΠΈ Π³Π»Π°Π·Π°ΠΌΠΈ, изучая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΡƒ Π² <Π±ΠΎΡ€ΠΌΠΎΡ‚Π°Π½ΠΈΠΈ>, Π±Ρ‹Π»ΠΎ мноТСство схСм кодирования. НСкоторыС ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ для сТатия Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ — для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² вмСстС, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ†Π΅Π»ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΌΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ глупости. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ послСднСго являСтся схСма кодирования MooMoo.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ†Π΅Π»ΡŒ, я обновлю эту ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ для 2000-Ρ… Π³ΠΎΠ΄ΠΎΠ² ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ MeowMeow (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π»ΡŽΠ±ΠΈΡ‚ кошСк). Основная идСя здСсь — Π²Π·ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΠ±Π°ΠΉΡ‚ (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Π±Π°ΠΉΡ‚Π°) тСкстом «мяу». Бтрочная Π±ΡƒΠΊΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ноль, Π° заглавная — Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π”Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° увСличится, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ мСняСм 4 Π±ΠΈΡ‚Π° Π½Π° 32 Π±ΠΈΡ‚Π°. Π”Π° это бСссмыслСнно. Но ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‡ΡŒΠ΅ΠΌ-Ρ‚ΠΎ Π»ΠΈΡ†Π΅, ΠΊΠΎΠ³Π΄Π° это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚:

 

$ cat / home / your_sibling /.super_secret_journal_of_my_innermost_Threads
MeOWmeOWmeowMEoW ...

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΡ€ΡƒΡ‚ΠΎ.

РСализация, Π½Π°ΠΊΠΎΠ½Π΅Ρ†

ΠŸΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ этого ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° GitHub, Π½ΠΎ я расскаТу ΠΎ своСм ΠΌΡ‹ΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ процСссС Π²ΠΎ врСмя Π΅Π³ΠΎ написания. ЦСль состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ C, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Π£ΠΆΠ΅ установив, Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ MeowMeow, я запустил ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

 

$ mkdir meowmeow
$ cd meowmeow
$ git init
$ touch Makefile # Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
$ touch main.c # ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
$ touch main.h # "Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅" константы ΠΈ опрСдСлСния
$ touch mmencode.c # Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° MeowMeow
$ touch mmencode.h # описываСт API кодирования
$ touch mmdecode.c # Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° MeowMeow
$ touch mmdecode.h # описываСт API дСкодирования
$ touch table.h # опрСдСляСт значСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ поиска ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ
$ touch .gitignore # ΠΈΠΌΠ΅Π½Π° Π² этом Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ git
$ git add.
$ git commit -m "Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация пустых Ρ„Π°ΠΉΠ»ΠΎΠ²"

ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, я создал ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΏΠΎΠ»Π½Ρ‹ΠΉ пустых Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ зафиксировал ΠΈΡ… Π² git.

Π”Π°ΠΆΠ΅ Ссли Ρ„Π°ΠΉΠ»Ρ‹ пусты, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. На всякий случай я снабдил ΠΊΠ°ΠΆΠ΄ΡƒΡŽ touch ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ описаниСм.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° запускаСтся ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ простой Ρ„Π°ΠΉΠ» main.c , содСрТащий всСго Π΄Π²Π΅ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. А Π·Π°Ρ‚Π΅ΠΌ программист ΠΎΠΏΡ€ΠΎΠΌΠ΅Ρ‚Ρ‡ΠΈΠ²ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄Ρ€ΡƒΠ³Ρƒ ΠΈΠ»ΠΈ Π΅Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΈΠΊΡƒ, ΠΈ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ количСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ всплываСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС Π½ΠΎΠ²Ρ‹Π΅ Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ» ΠΈ «трСбования», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ.ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡƒΠ±Π°Β» — Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠ»ΡƒΠ±Π΅Β». Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ — ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

Если чСстно, компилятору C Π½Π°ΠΏΠ»Π΅Π²Π°Ρ‚ΡŒ, Ссли каТдая функция Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ находится Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. Но ΠΌΡ‹ Π½Π΅ пишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ компиляторов; ΠΌΡ‹ пишСм ΠΈΡ… для Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΌΠΈ). Π― знаю, Ρ‡Ρ‚ΠΎ это, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡΡŽΡ€ΠΏΡ€ΠΈΠ·, Π½ΠΎ это ΠΏΡ€Π°Π²Π΄Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π°Π±ΠΎΡ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΈ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ люди ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ это, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.Π›ΡŽΠ΄ΡΠΌ придСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΊΠ»ΠΈΠ½Π°Ρ‚ΡŒ вашС имя, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ всС 2049 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΈ настоящиС программисты, Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, группируя ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π—Π΄Π΅ΡΡŒ Ρƒ мСня Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ main.c , mmencode.c ΠΈ mmdecode.c . Для Ρ‚Π°ΠΊΠΈΡ… Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ излишним. Но нСбольшиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅Π΄ΠΊΠΎ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ малСнькими, поэтому ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ — это Β«Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ идСя».

А ΠΊΠ°ΠΊ ΠΆΠ΅ Ρ‚Π΅ .h Ρ„Π°ΠΉΠ»ΠΎΠ²? Π― объясню ΠΈΡ… Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΏΠΎΠ·ΠΆΠ΅, Π½ΠΎ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ опрСдСлСния Ρ‚ΠΈΠΏΠΎΠ² языка C ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора C. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ интСрфСйса ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (API), ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ .c , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ .c .

Но Ρ‡Ρ‚ΠΎ, Ρ‡Π΅Ρ€Ρ‚ возьми, Ρ‚Π°ΠΊΠΎΠ΅ Makefile?

Π― знаю, Ρ‡Ρ‚ΠΎ всС Π²Ρ‹, ΠΊΡ€ΡƒΡ‚Ρ‹Π΅ рСбята, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Β«Ultra CodeShredder 3000Β» для написания ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ блокбастСра, Π° созданиС вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° состоит ΠΈΠ· затирания Π½Π° Ctrl-Meta-Shift-Alt-Super-B.Но Π² своС врСмя (Π° Ρ‚Π°ΠΊΠΆΠ΅ сСгодня) ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° C, созданными с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Makefiles. Makefile — это тСкстовый Ρ„Π°ΠΉΠ», содСрТащий Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΈ программисты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· исходного ΠΊΠΎΠ΄Π° (ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ!).

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, этот малСнький Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ камСнь:

 

00 # Makefile
01 TARGET = my_sweet_program
02 $ (TARGET): main.c
03 cc -o my_sweet_program main.c

ВСкст послС octothorpe / pound / hash являСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ Π² строкС 00.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 01 — это присвоСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π³Π΄Π΅ пСрСмСнная TARGET ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ my_sweet_program . По соглашСнию, Ρ…ΠΎΡ€ΠΎΡˆΠΎ, я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ, всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Makefile Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ для раздСлСния слов.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 02 состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, создаваСмого Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠΌ, ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ зависит. Π’ этом случаС Ρ†Π΅Π»ΡŒΡŽ являСтся my_sweet_program , ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ main.c .

ПослСдняя строка, 03, ΠΈΠΌΠ΅Π΅Ρ‚ отступ с табуляции, Π° Π½Π΅ с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° для создания Ρ†Π΅Π»ΠΈ. Π’ этом случаС ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ cc интСрфСйс компилятора C для компиляции ΠΈ связывания my_sweet_program .

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Makefile просто:

 

$ make
cc -o my_sweet_program main.c
$ ls
Makefile main.c my_sweet_program

Makefile, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ наш ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ / Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ MeowMeow, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТнСС, Ρ‡Π΅ΠΌ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π½ΠΎ основная структура Ρ‚Π° ΠΆΠ΅.Π― расскаТу ΠΎΠ± этом Π² стилС Π‘Π°Ρ€Π½ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π€ΠΎΡ€ΠΌΠ° слСдуСт Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ

Моя идСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ», ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΈ записываСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ». Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сфабрикованноС взаимодСйствиС с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой — Π²ΠΎΡ‚ ΠΊΠ°ΠΊ я ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ сСбС использованиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

 

$ meow clear.meow
$ unmeow meow.tx
$ diff clear.txt meow.tx
$

Нам Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ управлСния ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°.Нам Π½ΡƒΠΆΠ½Π° функция для кодирования ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ записи Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° функция для дСкодирования ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ записи Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ. ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ сСкунду, я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ написании ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я Π²Ρ‹Π·Ρ‹Π²Π°ΡŽ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: meow ΠΈ unmeow ? Π― знаю, Π²Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ это чСртовски слоТно.

ΠΠ΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅: argv [0] ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ln

Если Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, сигнатура основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ C:

  int main (int argc, char * argv [])  

, Π³Π΄Π΅ argc — количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π° argv — список ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ (строк).Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ argv [0] — это ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, содСрТащСму Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. МногиС слуТСбныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Unix с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сТатиСм ΠΈ распаковкой) выглядят ΠΊΠ°ΠΊ Π΄Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с двумя ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Π£Π»ΠΎΠ²ΠΊΠ° с двумя ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ достигаСтся ΠΏΡƒΡ‚Π΅ΠΌ создания «ссылки» Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ln .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· / usr / bin Π½Π° ΠΌΠΎΠ΅ΠΌ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅:

 

$ ls -li / usr / bin / git *
3376 -rwxr-xr-x.113 root root 1.5M 30 августа 2018 Π³. / usr / bin / git
3376 -rwxr-xr-x. 113 root root 1.5M 30 августа 2018 Π³. / usr / bin / git-receive-pack
...

Π—Π΄Π΅ΡΡŒ git ΠΈ git-receive-pack — это ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ inode (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ столбСц). Inode — это функция Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Unix, которая Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΈ / ΠΈΠ»ΠΈ Π»Π΅Π½ΠΈΠ²Ρ‹Π΅ программисты ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Unix, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ мСньшС ΠΊΠΎΠ΄Π°, Π½ΠΎ ΡƒΠ΄Π²Π°ΠΈΠ²Π°Ρ‚ΡŒ количСство поставляСмых ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ пишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая измСняСт своС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° основС значСния argv [0] , Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ создаСм ссылки с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π’ нашСм Makefile ссылка unmeow создана с использованиСм этого Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°:

 

# Makefile
...
$ (Π”Π•ΠšΠžΠ”Π•Π ): $ (ENCODER)
$ (LN) -f $ <$ @
...

Π― склонСн ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π² своих Ρ„Π°ΠΉΠ»Π°Ρ… Makefile, Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ «Π³ΠΎΠ»ΡƒΡŽ» строку. Π― Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽ всС опрСдСлСния Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Makefile, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΡ… поиск ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ пСрСнСсти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π½Π° Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС свои ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ xcc вмСсто cc .

Π Π΅Ρ†Π΅ΠΏΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простым, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π²ΡƒΡ… встроСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: $ @ ΠΈ $ <. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ — это ярлык для Ρ†Π΅Π»ΠΈ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°; Π² Π΄Π°Π½Π½ΠΎΠΌ случаС $ (Π”Π•ΠšΠžΠ”Π•Π ) . (Π― помню это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π½Π°ΠΊ at для мСня выглядит ΠΊΠ°ΠΊ Ρ†Π΅Π»ΡŒ.) Π’Ρ‚ΠΎΡ€ΠΎΠ΅, $ < — это Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°; Π² этом случаС ΠΎΠ½ прСобразуСтся Π² $ (ENCODER) .

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, всС услоТняСтся, Π½ΠΎ это управляСмо.

C-Files ГалСрСя ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ | USCIS

Π€Π°ΠΉΠ»Ρ‹ сСртификатов Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (C-Ρ„Π°ΠΉΠ»Ρ‹), ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ для всСх случаСв Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Ρ„Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ, ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ, Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ»ΠΈ мСстным судом Π² Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π¨Ρ‚Π°Ρ‚Π°Ρ… с 27 сСнтября 1906 Π³. ΠΏΠΎ 31 ΠΌΠ°Ρ€Ρ‚Π° 1956. C-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ сСртификатом Π½ΠΎΠΌΠ΅Ρ€, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° Π»ΠΈΡ†Π΅Π²ΠΎΠΉ сторонС Π‘Π²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ судСбных записСй ΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎ Π΄Π°Ρ‚Π΅, Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ€Ρƒ ΠΏΠ΅Ρ‚ΠΈΡ†ΠΈΠΈ, Ρ„Π°ΠΉΠ»Ρ‹ C USCIS ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ сСртификата.

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

Помимо сСртификата, всС C-Ρ„Π°ΠΉΠ»Ρ‹ содСрТат стандартныС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π°ΠΌΠΈ судСбных записСй ΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. К Π½ΠΈΠΌ относятся пСтиция ΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ, Ссли трСбуСтся, ДСкларация ΠΎ намСрСниях ΡΡ‚Π°Ρ‚ΡŒ Π³Ρ€Π°ΠΆΠ΄Π°Π½ΠΈΠ½ΠΎΠΌ БША.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ мСнялись со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.Π Π°Π½Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π±Ρ‹Π»ΠΈ написаны ΠΎΡ‚ Ρ€ΡƒΠΊΠΈ, Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹. Π€ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π΄ΠΎ 1929 Π³ΠΎΠ΄Π°.

ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ C-Ρ„Π°ΠΉΠ»ΠΎΠ² USCIS с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½ΠΈΠΆΠ΅ C-6500000 ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈΠ· ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΈΠ»ΡŒΠΌΠΎΠ². ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ изобраТСния ΠΌΠΎΠΆΠ΅Ρ‚ сильно Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. НаиболСС Π²Π°ΠΆΠ½Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌ качСство изобраТСния записСй с ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΈΠ»ΡŒΠΌΠΎΠ², являСтся Ρ‚ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΈ ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² систСмС Π—Π°ΠΊΠΎΠ½Π° ΠΎ свободС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ / ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π‘ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΈΠ»ΡŒΠΌ ΠΈΠ»ΠΈ бумаТная копия, ΠΏΠ΅Ρ‚ΠΈΡ†ΠΈΠΈ ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π°Ρ… C ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π°ΠΌΠΈ судСбных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ².Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π° Π±ΡƒΠΌΠ°ΠΆΠ½Ρ‹Ρ… носитСлях часто ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌΠΈ копиями, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с качСством.

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

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

НСкоторыС C-Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ копию Π·Π°Π²Π΅Ρ€Π΅Π½Π½ΠΎΠΉ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· записи ΠΎ ΠΏΡ€ΠΈΠ±Ρ‹Ρ‚ΠΈΠΈ пассаТира Π² Ρ„ΠΎΡ€ΠΌΠ΅ 505, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π‘Π²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΎ ΠΏΡ€ΠΈΠ±Ρ‹Ρ‚ΠΈΠΈ для Ρ†Π΅Π»Π΅ΠΉ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

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

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

C-Ρ„Π°ΠΉΠ»Ρ‹ для Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ послС 1 апрСля 1944 Π³ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ записи ΠΈ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ рССстра ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Visa.ВсС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ записи Π±Ρ‹Π»ΠΈ собраны Π²ΠΎ врСмя Π½Π°Ρ‚ΡƒΡ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ консолидированы Π² C-Ρ„Π°ΠΉΠ»Π΅.

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² .c ΠΈ .h для C?

.c: c Ρ„Π°ΠΉΠ» (Π³Π΄Π΅, Π² ΠΎΠ±Ρ‰Π΅ΠΌ, Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ дСйствиС)

.h: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ прСпроцСссора #include ). Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ совмСстно с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ частями вашСго ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, #define’d Π²Π΅Ρ‰ΠΈ, объявлСниС extern для Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (ΠΎ, уТас) ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.

ВСхничСски Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ». ЦСлая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° C. ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ строк. Но ΠΌΡ‹, люди, склонны всС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ создаСтС Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ C, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ВсС красиво ΠΈ чисто. Π—Π°Ρ‚Π΅ΠΌ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ объявлСниС , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρƒ вас Π΅ΡΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ C, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ C. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Ρ‹ ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ объявлСниС ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .h

.

НапримСр, Π² cs50.h Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Β«ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ объявлСния» Π²Π°ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ объявлСниС — это быстрый способ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ компилятору, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° функция (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹) ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ количСством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠ½Π° Π±ΡƒΠ΄Ρƒ ΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒΡΡ).

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» .c, содСрТащий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ сопоставлСниС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваша функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»Π° рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, строку для сопоставлСния ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ сравнСниС Π±Ρ‹Ρ‚ΡŒ Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊ рСгистру.

Π² .c, поэтому помСститС

  bool соотвСтствуСт (строка regexp, string s, int flags) {ΠΊΠΎΠ΄}
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π»Π°Π³ΠΈ:

0: Ссли поиск чувствитСлСн ΠΊ рСгистру

1: Ссли поиск нСчувствитСлСн ΠΊ рСгистру

И Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ для Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ², поэтому Π²Ρ‹ Π½Π΅ устанавливаСтС логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
ΠΈΠ³Ρ€Π°Ρ‚ΡŒ с числами слоТно, поэтому Π²Ρ‹ опрСдСляСтС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° для этих Ρ„Π»Π°Π³ΠΎΠ²

  #define MATCH_CASE_SENSITIVE 0
#define MATCH_CASE_INSENSITIVE 1
  

Π­Ρ‚Π° информация ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π².h, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, Ссли какая-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΎΠ½Π° Π½Π΅ смоТСт ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΡ…, Ссли Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π² .c, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π²Π°ΠΌ придСтся Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ .c (вСсь!), Π§Ρ‚ΠΎ являСтся пустой Ρ‚Ρ€Π°Ρ‚ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ источником ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π―Π·Ρ‹ΠΊ C: ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’ этом руководствС ΠΏΠΎ C ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° языкС C.

ОписаниС

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° языкС C Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ²:

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π’ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° ΠŸΡ€ΠΈΠΌΠ΅Ρ€
.c Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» C techonthenet.c
.cc Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» C ++ techonthenet.cc
.cpp Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» C ++ techonthenet.cpp
.o ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» C / C ++ techonthenet.o
.h Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» C / C ++ techonthenet.h
.exe Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» Microsoft Windows techonthenet.exe
.com Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» Microsoft Windows techonthenet.com

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ объясним Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ².

ИмСнованиС исходного Ρ„Π°ΠΉΠ»Π°

На Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UNIX, Microsoft Windows ΠΈ Ρ‚. Π”.) РаспространСна ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° C Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° «.c «Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² UNIX:

 $ лс
techonthenet.c 

Π’ этом ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° C ++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ ΠΎΡ‚ Β«.ccΒ» Π΄ΠΎ Β«.cppΒ» ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ.

НапримСр, Π² Microsoft Windows Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ имя C ++:

> Ρ€Π΅ΠΆ
techonthenet.cpp 

ИмСнованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

Π’ C Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный Ρ„Π°ΠΉΠ» Π² нСисполняСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Β«.oΒ».ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это дСлаСтся для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ вмСстС ΠΏΠΎΠ·ΠΆΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ gcc Π½Π° созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° вмСсто исполняСмого Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ gcc с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -c ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 $ gcc techonthenet.c -c
$ ls
techonthenet.c techonthenet.o 

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ gcc создал ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ techonthenet.o .

ИмСнованиС исполняСмого Ρ„Π°ΠΉΠ»Π°

Π₯отя Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ связанных исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ компиляторов ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ скомпилированный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«a.out «, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅.

НапримСр:

 $ gcc techonthenet.c
$ ls
a.out techonthenet.c 

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ C gcc создал исполняСмый Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ a.out .

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ имя скомпилированной ΠΈ связанной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΎΡΡŒ ΠΎΡ‚ a.out , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ компилятору ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -o. Π­Ρ‚ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ компилятору вывСсти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ gcc вывСсти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ techonthenet .

 $ gcc techonthenet.c -o techonthenet
$ ls
techonthenet techonthenet.c 

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² UNIX ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ прилоТСния Microsoft Windows ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Β«.comΒ» ΠΈΠ»ΠΈ Β«.exeΒ».

НапримСр, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Microsoft Windows:

> Ρ€Π΅ΠΆ
techonthenet.exe 

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ исполняСмый Ρ„Π°ΠΉΠ» C называСтся techonthenet.exe .

.c Extension — Бписок ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ.c Ρ„Π°ΠΉΠ»Ρ‹

.c Extension — Бписок ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .c

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ список ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .c. Π­Ρ‚ΠΎΡ‚ список создаСтся ΠΏΡƒΡ‚Π΅ΠΌ сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ…, сообщаСмой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚Β» ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ FileTypesMan.
НазваниС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, описаниС ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ бСрутся ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ вСрсии Ρ„Π°ΠΉΠ»Π° .exe. Бписок «ДСйствия» бСрСтся ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² контСкстного мСню, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.Π’ столбцС Β«ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΒ» отобраТаСтся ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… 4 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: «НизкоС», Β«Π‘Ρ€Π΅Π΄Π½Π΅Π΅Β», «ВысокоС» ΠΈ Β«ΠžΡ‡Π΅Π½ΡŒ высокоС», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСтся Π² зависимости ΠΎΡ‚ количСства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ²ΡˆΠΈΡ… ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ запись.

срСдний

exe

Falcon

.exe

Π½ΠΈΠ·ΠΊΠΈΠΉ

ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с Firefox

.exe

Microsoft Corporation

9401

codeblocks.exe Code :: Blocks Code :: Blocks IDE Code :: Blocks Team open Low
codeblocks.exe Низкий
DevCpp.exe Dev-C ++ Dev-C ++ IDE ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Bloodshed ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Низкий
devenv.exe Microsoft Visual Studio 2013 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Medium ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ срСдний devenv.exe Microsoft Visual Studio 2008 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
devenv.exe Microsoft Visual Studio 2005 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ

ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚? Visual Studio? 2013 Microsoft Visual Studio 2013 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Низкий
devenv.exe Microsoft Visual Studio .NET 2003 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Visual Studio .NET 2003 Низкий
devenv.exe Microsoft Visual Studio 2010 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
devenv.exe Microsoft Visual Studio 2017 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Низкий
devenv.exe Microsoft? Visual Studio? 2008 Microsoft Visual Studio 2008 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Низкий
devenv.exe Microsoft Visual Studio 2012 Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Низкий
devenv4

.exe Microsoft Visual Studio 2015 Microsoft Corporation Open Low
doxillion.exe Doxillion Doxillion Document Converter ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС NCH ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Doxillion

Falcon C ++ C ++ IDE простой ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ MZSW ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ
firefox.exe Firefox Firefox Mozilla Corporation Mozilla Corporation fvp.exe File Viewer Plus File Viewer Plus Sharpened Productions ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ
iexplore.exe Internet Explorer Microsoft Corporation 9040 9040 9040 мс, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ с IE8 Microsoft (R) Visual Studio Microsoft (R) Developer Studio Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MSDEV Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
notepad ++.exe Notepad ++ Notepad ++: бСсплатный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π° (GNU) Don HO [email protected] ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Notepad ++ Low
NOTEPAD.EXE Notepad Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Низкий
pdfcreator.exe PDFCreator PDFCreator pdfforge http://www.pdfforge.org/ Erzeuge PDF und Bilddateien MIT PDF6

9040

Π½ΠΈΠ·ΠΊΠΈΠΉ pdf6 .exe

Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ программиста Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ программиста 2 Π‘Π°ΠΉΠΌΠΎΠ½ Π‘Ρ‚ΠΈΠ» (Echo Software) ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Низкий
qtcreator.exe срСдний ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ.exe UltraEdit UltraEdit Professional Text / Hex Editor IDM Computer Solutions, Inc. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ, ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
UEStudio.exe ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ, ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ Низкий
VCExpress.exe Microsoft Visual C ++ 2008 Express Edition Microsoft Corporation ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Medium VCE

Microsoft Visual C ++ 2010 Express Microsoft Corporation Open Medium
WDExpress.exe Microsoft Visual Studio Express 2013 для Windows Desktop Microsoft Corporation Open Low

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ список свСдСний ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², связанных с.c Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅.

Π½ΠΈΠ·ΠΊΠΈΠΉ Ρ„Π°ΠΉΠ» c_auto

Π½ΠΈΠ·ΠΊΠΈΠΉ тСкст

бСсплатно

Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π”ΠΎΠ½ Π₯О Π΄ΠΎΠ½[email protected]

EStcreator. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (.c)

xpress

c.10.0

System

Microsoft Corporation

.c.12.0

9040.dll

C Source text text / plain VCProject.dll Visual C ++ Build System Package, Microsoft Corporation Low
ВСкст C / C ++

Π€Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π° C / C ++

FVP.EXE File Viewer Plus, Sharpened Productions Low
cfile C Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» тСкст MSDEV.EXE Microsoft (R) Developer Studio, Microsoft Corporation Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
CLion2017.3 тСкст тСкст / простой Низкий
КодB Ρ„Π°ΠΉΠ» тСкст тСкст / простой codeblocks.exe Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
c_auto_file тСкст qtcreator.exe Низкий
DevCpp.c Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» C тСкст тСкст / простой devcpp.exe Dev-C ++ IDE, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Bloodshed Π‘Ρ€Π΅Π΄Π½Π΅Π΅
тСкст тСкст / простой Низкий
Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ ++ _ Ρ„Π°ΠΉΠ» Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ ++ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ тСкст Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ ++. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ GNU ++: Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ GNU Низкий
QtProject.QtCreator.c C Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» тСкст тСкст / ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ qtcreator.exe Низкий
тСкст тСкст / ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ
UltraEdit.c C-Quelldatei тСкст тСкст / простой UltraEdit.c Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ UltraEdit (.c} тСкст тСкст / простой Низкий
UltraEdit.c Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ UltraEdit (.c) тСкст тСкст простой тСкст Low
VCExpress.c.10.0 C Source text text / plain VCProject.dll Visual C ++ Build System Package, Microsoft Corporation Medium
тСкст Низкий
VCExpress.c.9.0 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ C тСкст тСкст / простой VCProject.dll

VCProject.dll , Microsoft Corporation Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
VCExpress.c.9.0 Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
VisualStudio.c.10.0 Низкий
VisualStudio.c.10.0 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ C тСкст тСкст / простой VCProject.dll БистСма VCProject.dll Medium
VisualStudio.c.11.0 C Source text text / plain VCProject.dll Visual C ++ Build System Package, Microsoft Corporation Low
C Source text text / plain VCProject.dll Visual C ++ Build System Package, Microsoft Corporation Medium
VisualStudio.c.14.0 C Source text

text / plain VCProject.dll Visual C ++ Build System Package, Microsoft Corporation Low
VisualStudio.c.7.1 C Source text text / plain VCProject.dll ΠŸΠ°ΠΊΠ΅Ρ‚ систСмы сборки Visual C ++, Microsoft Corporation Низкий
VisualStudio.c.8.0 Низкий
VisualStudio
VisualStudio

VisualStudio

text text / plain VCProject.dll Visual C ++ Build System Package, Microsoft Corporation Medium
VisualStudio.c.9.0 C Source text text / plain Visual C ++ Build System Package, Microsoft Corporation Medium
WDExpress.c.12.0 C Source text text / plain VCProject.dll Visual C ++ Build System Package, Microsoft Corporation Низкий
ΠšΠ»ΡŽΡ‡ΠΈ рССстра, связанныС с этим Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ

HKEY_CLASSES_ROOT \ .c
HKEY_CLASSES_ROOT \
HKEY_CLASSES_ROOT \ cfile
HKEY_CLASSES_ROOT \ CLion2017.3
HKEY_CLASSES_ROOT \ CodeBlocks.c
HKEY_CLASSES_ROOT \ c_auto_file
HKEY_CLASSES_ROOT \ DevCpp.c
HKEY_CLASSES_ROOT \ Notepad ++ _ Ρ„Π°ΠΉΠ»Π°
HKEY_CLASSES_ROOT \ QtProject.QtCreator.c
HKEY_CLASSES_ROOT \ UEStudio.c
HKEY_CLASSES_ROOT \ UltraEdit.c
HKEY_CLASSES_ROOT \ VCExpress.c .10.0
HKEY_CLASSES_ROOT \ VCExpress.c.9.0
HKEY_CLASSES_ROOT \ VisualStudio.c.10.0
HKEY_CLASSES_ROOT \ VisualStudio.c.11.0
HKEY_CLASSES_ROOT \ VisualStudio.c.12_VISALCLASSES_ROOT \ VisualStudio.c.14.0
HKEY_CLASSES_ROOT \ VisualStudio.c.7.1
HKEY_CLASSES_ROOT \ VisualStudio.c.8.0
HKEY_CLASSES_ROOT \ VisualStudio.c.9.0
HKEY_CLASSES_ROOT \ WDExpress.c.12.0

Поиск Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ…:

Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΉΡ‚ΠΈ Π΅Π³ΠΎ Π²
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ список:

А | B | C | D | E | F | G | H | Π― | J | K | L | M | N | O | P | Q | R | S | Π’ | U | V | W | X | Y | Z | Π”Ρ€ΡƒΠ³ΠΈΠ΅ |

Π€Π°ΠΉΠ»Ρ‹ C + для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ инструмСнтария… Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΡ… Tri-City Dev

ΠŸΠ°Ρ€Ρƒ нСдСль Π½Π°Π·Π°Π΄ я написал Π² Π±Π»ΠΎΠ³Π΅ ΠΎ создании ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅ΠΉ Π΄ΠΎΡ€ΠΎΠΆΠΊΠΈ для лСчСния ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ².

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

ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ каТдая систСма ΠΊΠ°Π½Π°Π»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π²ΠΎΠΉΠ΄Π΅ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π±Π΅Π· особых усилий ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ 10 ΠΈΠ»ΠΈ 15 Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎ апСкса.Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ эндодонтичСским блаТСнством, Π½ΠΎ, ΠΊ соТалСнию, это Π½Π΅ всСгда Ρ‚Π°ΠΊ; ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π½Π΅ Π² нашСм офисС. Π‘Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎ ΠΊΠ°Π»ΡŒΡ†ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ искривлСнный ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΊΠ°Π»ΡŒΡ†ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ Π² ΠΊΠ°ΠΌΠ΅Ρ€Π΅ ΠΈ Π³Π»ΡƒΠ±ΠΆΠ΅ Π² систСмС ΠΊΠ°Π½Π°Π»ΠΎΠ² (рис. 1 ΠΈ 2). Ручная напильник 10 Π½Π΅ ΡƒΠΏΠ°Π΄Π΅Ρ‚ Ρ‚Π°ΠΊ Π»Π΅Π³ΠΊΠΎ Π² ΠΊΠ°Π½Π°Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ апСкса, Π±Π΅Π· Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… усилий для согласования с мСньшими ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ€ΡƒΡ‡Π½Ρ‹ΠΌΠΈ напильниками. Π”Π°ΠΆΠ΅ Ρ€ΡƒΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ K-file Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 8 ΠΈ Π΄Π°ΠΆΠ΅ 6 Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· систСму ΠΊΠ°Π½Π°Π»ΠΎΠ².Π’ этих ситуациях ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» C + (рисунок 3 — Dentsply Maillefer).

Рис. 1: БистСма ΠΊΠ°Π½Π°Π»ΠΎΠ² со Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°Π»ΡŒΡ†ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

Рис. 2: ΠšΠ°Π»ΡŒΡ†ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ камСнь Π² ΠΊΠ°ΠΌΠ΅Ρ€Π΅ ΠΈ ΠΊΠΎΡ€ΠΎΠ½ΠΊΠΎΠ²ΠΎΠΉ части Π΄ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° (ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΌΠΈ стрСлками).

Рисунок 3. ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· 8 Ρ„Π°ΠΉΠ»ΠΎΠ² C +

Π€Π°ΠΉΠ»Ρ‹

C + Π² Ρ†Π΅Π»ΠΎΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π±ΠΎΠ»Π΅Π΅ ТСсткий Ρ„Π°ΠΉΠ» с Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΡƒΡ‰ΠΈΠΌ Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сильно отличаСтся ΠΎΡ‚ стандартных, довольно Π³ΠΈΠ±ΠΊΠΈΡ… ΠΈ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅ΠΆΡƒΡ‰ΠΈΡ… Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊΠΎΠ² K-Ρ„Π°ΠΉΠ»Π°. C + -Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Π΅Π½Ρ‚ΠΈΠ½ΠΎΠΌ Π² условиях ΠΊΠ°Π»ΡŒΡ†ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π·Π° счСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ТСсткости ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΡƒΡ‰Π΅Π³ΠΎ Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊΠ°, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ K-Ρ„Π°ΠΉΠ» просто «изгибаСтся» Π½Π° ΠΊΠΎΠ½Ρ†Π΅ Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΠΈΠ·Π²Π΅ΡΡ‚ΠΊΠΎΠ²ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ.Π–Π΅ΡΡ‚ΠΊΠΎΡΡ‚ΡŒ — это Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠΏΠ΅Ρ€Π΅Ρ‡Π½ΠΎΠ΅ сСчСниС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ΄Π°Π΅Ρ‚ Π΅ΠΌΡƒ больший объСм Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ Ρ„Π°ΠΉΠ»Π°. K-ΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠΏΠ΅Ρ€Π΅Ρ‡Π½ΠΎΠ΅ сСчСниС.

C + -Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ISO, Ρ‡Ρ‚ΠΎ ΠΈ стандартныС K-Ρ„Π°ΠΉΠ»Ρ‹. Π’ нашСм офисС ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² основном C + -Ρ„Π°ΠΉΠ» Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 6. Π£ нас, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ 8, 10 ΠΈ 15, Π½ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 6 C + -Ρ„Π°ΠΉΠ» достигаСт ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ K-Ρ„Π°ΠΉΠ»Π°ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 6, 8, 10, продолТая ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰ΡƒΡŽ Π΄ΠΎΡ€ΠΎΠΆΠΊΡƒ. Π― Π±Ρ‹ посовСтовал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ скручивания ΠΈ вытягивания, Π° Π½Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ Π·Π°Π²ΠΎΠ΄Π° часов ΠΈΠ»ΠΈ ΡƒΡ€Π°Π²Π½ΠΎΠ²Π΅ΡˆΠΈΠ²Π°Π½ΠΈΡ сил.Π’Ρ‹ почувствуСтС, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» вошСл Π² Π΄Π΅Π½Ρ‚ΠΈΠ½ ΠΈ высвободился, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΅Π³ΠΎ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚Π΅. Π‘Π½ΠΎΠ²Π° ΠΈ снова, ΠΈ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» продвигаСтся всС Π³Π»ΡƒΠ±ΠΆΠ΅. Иногда довольно ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½ΠΎ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ продвигаСтся.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΠ°ΠΊ всСгда, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ ΠΏΡ€ΠΈ использовании Π±ΠΎΠ»Π΅Π΅ ТСсткого Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ напильника с Ρ€Π΅ΠΆΡƒΡ‰Π΅ΠΉ ΠΊΡ€ΠΎΠΌΠΊΠΎΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ транспортировка, выступ ΠΈΠ»ΠΈ пСрфорация. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Ρ‚Π΅ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² этих Ρ„Π°ΠΉΠ»Π°Ρ…, я Π±Ρ‹ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ случай, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° основании ΠΏΡ€Π΅Π΄ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ€Π΅Π½Ρ‚Π³Π΅Π½ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² C + ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ лСчСния (рис. 4).Π‘ΠΊΠΎΡ€Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» C +, ΠΊΠΎΠ³Π΄Π° Π±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ Π·Π° Π΄Π΅Π»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ довольно рСгулярным ΠΈ довольно простым, Π½ΠΎ Π½Π° этапС лСчСния Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ агрСссивно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ- ΠΏΡ€ΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ станции (снова см. рисунок 2). НапримСр, ΠΎΠ΄Π½ΠΎΠΊΠΎΡ€Π½Π΅Π²Ρ‹Π΅ прСмоляры часто ΠΎΠ±ΠΌΠ°Π½Ρ‡ΠΈΠ²Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ эти Π·ΡƒΠ±Ρ‹ прямыС ΠΈ с ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ систСмами ΠΊΠ°Π½Π°Π»ΠΎΠ², Π½ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚ΡŒ Π²ΠΎ врСмя лСчСния ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ·ΠΊΠΈΠΉ ΠΊΠ°Π½Π°Π», Ρ‡Π΅ΠΌ оТидалось.Π€Π°ΠΉΠ» C + Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 6, вСроятно, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ этот ΠΊΠ°Π½Π°Π» (см. Рисунок 5). Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΎΡΠ²ΠΎΠΈΡ‚Π΅ΡΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ C +, я Π±Ρ‹ посовСтовал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² качСствС инструмСнтов Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, Π° Π½Π΅ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» с самого Π½Π°Ρ‡Π°Π»Π°. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π²Ρ‹ почувствуСтС сСбя ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ с этим напильником ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚Π΅ свои эндодонтичСскиС возмоТности; Π±Ρ€Π°Ρ‚ΡŒ Π½Π° сСбя большС Π΄Π΅Π». Π’ нашСм офисС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² 80% случаСв лСчСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ прСдоставляСм, Π½ΠΎ это просто Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ случаи, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ сталкиваСмся Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ, ΠΈ ΠΎΠΏΡ‹Ρ‚ использования этих Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ эффСкты.Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ эти Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ эффСкты Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π΄ΠΊΠΈ.

Рис. 4. Волько Π½Π° основании ΠΏΡ€Π΅Π΄ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ рСнтгСновского снимка ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ довольно ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ² C +, основанных ΠΊΠ°ΠΊ Π½Π° ΠΊΡ€ΠΈΠ²ΠΈΠ·Π½Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΊΠ°Π»ΡŒΡ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Рисунок 5: Π₯отя я ΠΎΠΆΠΈΠ΄Π°Π», Ρ‡Ρ‚ΠΎ этот ΠΊΠ°Π½Π°Π» Π±ΡƒΠ΄Π΅Ρ‚ прямолинСйным, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я ясно Π²ΠΈΠΆΡƒ пространство ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΊΠΎΡ€Π΅Π½ΡŒ прямой, ΠΌΠ½Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ C +, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ я Π½Π°Ρ‡Π°Π» Π΄Π΅Π»ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ оказался Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»ΠΎΡ‚Π½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ оТидалось .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ ΡƒΠ΄ΠΈΠ²Π»ΡΠΉΡ‚Π΅ΡΡŒ, Ссли Π²Π°ΠΌ понадобится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ² C +.Один ΠΈΠ»ΠΈ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° C + Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 6 ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΠΌ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Ρ… случаях. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ с Π΄Π΅Π½Ρ‚ΠΈΠ½ΠΎΠΌ, Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Ρ€Π°ΡΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΌΠ΅Π½Π΅Π΅ эффСктивным Ρ„Π°ΠΉΠ»ΠΎΠΌ. Часто смотритС Π½Π° ΠΊΠΎΠ½Ρ‡ΠΈΠΊ Ρ„Π°ΠΉΠ»Π° ΠΈ, Ссли Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ откручиваСтся, Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ» C +. Π£ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°Π½Π°Π»Ρ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… потрСбуСтся Π΄ΠΎ 20-25 Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π» (см. Рисунок 6). Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π½Π°Π½ΡΡ‚ΡŒ Π² нашСм офисС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ массаТиста Π² Ρ‚Π°ΠΊΠΈΡ… случаях.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *