Главная Абитуриентам Студентам Математика Программирование Книги
Материалы
Технические
C python + matplotlib python + opencv jupyter LaTeX git
Учебные
ММ (1 курс) ВМК (2 курс) ВМК (введение в численные методы) ВМК (магистранты)
Установка

Полезная ссылка для полных новичков:

Читаем: younglinux.info

Установка gcc

sudo apt update
sudo apt install build-essential

Про стиль кода

Читаем: tproger.ru

Краткие требования:
  1. Отступы - 4 пробела.
  2. Вложение в оперторы if, while, for, else идет с отступом.
  3. Нет строк, оканчивающихся пробелом.
  4. Перед запятой нет пробела, после запятой пробел есть.
  5. После '{' идет новая строка.
  6. После '}' идет новая строка (кроме объявления структур и классов, else, while).
  7. После ';' идет новая строка (кроме условий внтури for).
  8. После ';' в цикле for идут пробелы: 'for (start; condition; post)'.
  9. После '}' в else и do-while идут пробелы: '} else', '} while'.
  10. Пробелами выделяются все арифметические бинарные операторы: '+', '-', '*', '/', '%', '+=', '-=', '*=', '/=', '%='.
  11. Пробелами выделяются все операторы сравнения: '>', '<', '==', '>=', '<=', '!='.
  12. Пробелами выделяются все логические бинарные операторы: '&&', '||'.
  13. Пробелами выделяются все битовые бинарные операторы: '&', '|', '>>', '<<', '&=', '|=', '>>=', '<<='.


Варианты чекеров стиля:
  1. Чекер cstyle (самописный, рекомендуется 1 курсу). Скачиваем здесь: 💾 cstyle.py (английская версия 💾 cstyle-en.py ) или прямо в терминале командой wget. Не забываем разрешить выполнение.
    wget http://mymath.info/student/c/files/cstyle.py
    chmod +x ./cstyle.py
    Проверка кода:
    ./cstyle.py file.c
  2. Чекер cpplint (от google). Ставим из pip-репозитория:
    sudo apt install python3-pip
    pip install cpplint
    Проверка кода:
    cpplint --filter=-legal/copyright file.c
  3. Чекер checkpatch (от разработчиков ядра LINUX, рекомендуется 2 курсу). Скачиваем из github:
    wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/checkpatch.pl
    chmod +x checkpatch.pl
    Проверка кода:
    ./checkpatch.pl --no-tree -f file.c

Скрипт быстрой конвертации табуляции в пробелы (создает резервную копию):
sed -i.bak 's/\t/    /g' file.c

Про отладку кода

Читаем: server.179.ru

Пример строки компиляции:
gcc file.c -o file.c -Wall -Werror -lm -g
gdb file

Про санитайзеры

Читаем: gcc.gnu.org

Сберечь время и нервы помогут санитайзеры (выход за границы массивы и некорретное разыменования указателей):
gcc file.c -o file.c -Wall -Werror -lm -fsanitize=undefined -fsanitize=address

Про Makefile

Читаем: habr.com

Makefile для компиляции и проверки кода:
%: %.c
⟶gcc $@.c -o $@ -Wall -Werror -lm
⟶./cstyle.py $@.c
Вместо стрелок подставьте табуляцию (с пробелами работать не будет).

Запуск:
make file