# C: общее

[Исходный код из книги по C](https://www.pearsonglobaleditions.com)

P. J. Plauger’s The Standard C Library - желательная для прочтения.

Поиск нужного пакета:

```
apt-cache search manpages | grep ^manpag
```

Установка пакетов

```
sudo apt install manpages-ru manpages-ru-dev
```

Список доступных локалей

```
locale -a
```

Установка локали для man страницы

```
LANG=ru_RU.utf8 man 2 open
```

**Компиляция**

```
cc test.c
cc -0 test test.c
```

Вариант через gcc

```
gcc -Wall -Wextra -Werror -g program.c -o my_program
```

Добавить поиск в текущей директории (чтобы не писать ./)

```
export PATH=$PATH:.
```

**Базовое описание языка**

```c
1 // A first program in C.
2 #include <stdio.h>
3 
4 // function main begins program execution 
5 int main(void) {
6    printf("Welcome to C!\n");
7 }
```

\# - директивы препроцессора.

\*.h заголовочные файлы, в которых содержится описание функций и ссылки на файлы с их расположением.

**Переменные**

Переменные можно просто объявлять и дополнительно инициализировать начальное значение

<table border="1" id="bkmrk-integer-%28int%29-%D0%A6%D0%B5%D0%BB%D1%8B%D0%B5-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 12.5149%;"></col><col style="width: 27.8025%;"></col><col style="width: 59.6826%;"></col></colgroup><tbody><tr><td>integer (int)</td><td>Целые числа</td><td>```c++
int var;
int var=7;
```

  
</td></tr><tr><td>float</td><td>Дробные с точностью до 7 знака</td><td>```c++
float var_float = 12.45;
```

  
</td></tr><tr><td>double</td><td>Дробные с точностью 15 знаков</td><td>  
</td></tr><tr><td>bool</td><td>Логическое</td><td>```c++
bool vr = true;
```

  
</td></tr><tr><td>char</td><td>Символ</td><td>```c++
char n = 'g';
```

  
</td></tr></tbody></table>

**Константы**

добавляется слово const

```c++
const int var=7;
```

**Комментарии**

```c++
// comments
/* comments
long */
```

**Шаблон описания функции**

```c
тип_возвращаемого_значения название(входящие аргументы) {

}
```