Все разделы
Выбрать школу

Школа. Увлечения. Большое будущее.

PROSCHOOLS · ОБРАЗОВАНИЕ РЯДОМ

Ваш город

Выберите город, чтобы находить образование и возможности рядом.

Как учитываем городКаталог и кнопки «Выбрать школу» покажут школы выбранного города.Онлайн-курсы, учебник, ГДЗ и задания к экзаменам доступны по всей России.

Популярные города

Будет выбран: Вся Россия

Учебные материалы останутся прежними.

Поиск по сайту

По всему сайтуШколы выбранного города — выше в результатах

С чего начнём?

↑ ↓ — выбрать результат · Enter — открыть · Esc — закрыть

Стиль кода на C: читаемость, имена и границы правил

💻 Информатика · 9 класс

Как отделить соглашения проекта от синтаксиса языка и проверить код на понятном примере.

Программный код на экране
Программный код на экранеMartin Vorel · Wikimedia Commons · CC BY-SA 4.0

У языка нет единственного оформления

Синтаксис C определяет допустимые конструкции, но не навязывает один стиль отступов и скобок для всех проектов. GNU Coding Standards, например, задают собственные правила; другие проекты могут использовать иной согласованный стиль. Поэтому число пробелов нельзя выдавать за универсальное требование стандарта C.

Главный практический принцип — последовательность внутри проекта. В учебном примере ниже выбраны четыре пробела на уровень и отдельная строка для открывающей скобки функции. Это локальное соглашение примера, а не заявление о точном следовании всем правилам GNU.

Что повышает читаемость

  • Понятные имена показывают роль: left, right, max_value лучше случайного a1 там, где назначение известно.
  • Пробелы отделяют операторы, а отступы показывают вложенность.
  • Фигурные скобки защищают смысл при добавлении новых строк в условие или цикл.
  • Функция решает понятную небольшую задачу; комментарий объясняет причину необычного решения, а не повторяет каждую очевидную строку.

Разобранный пример

#include <stdio.h>

static int max_value(int left, int right)
{
    if (left > right) {
        return left;
    }
    return right;
}

int main(void)
{
    printf("%d\n", max_value(-2, -5));
    return 0;
}

Результат — -2, потому что -2 больше -5. Разделение на функцию и вызов позволяет проверить смысл отдельно от вывода. Имя max_value описывает результат; отступ показывает, что первый return принадлежит if, а второй выполняется, когда условие ложно.

Стиль не исправляет алгоритм

Если заменить сравнение > на <, программа останется аккуратной и допустимой, но начнёт возвращать минимум. Если перепутать == и = в условии другой функции, изменится смысл: сравнение и присваивание — разные операции. Поэтому после форматирования нужны примеры с различными данными, а не только визуальная оценка.

Для этой функции полезны случаи left > right, left < right и равенство. Отрицательные числа помогают обнаружить ошибочную привычку считать большим число с большей абсолютной величиной.

Задания

  1. Что вернут max_value(3, 8) и max_value(4, 4)?
  2. Доказывают ли четыре пробела, что функция правильно реализует максимум?
  3. Нужно ли полностью переформатировать чужой модуль, если его согласованный стиль отличается от личной привычки?

Ответы

1. 8 и 4. При равенстве выполняется второй return, но значение верно. 2. Нет: оформление и логика проверяются разными способами. 3. Обычно следует соблюдать правила проекта; массовая косметическая правка без задачи усложняет сравнение изменений.

Самопроверка

Прочитайте код как инструкцию другому человеку: понятны ли типы, имена и ветви? Затем проверьте вычисления на границах. Предупреждения компилятора полезны, но их отсутствие не является доказательством правильности. Стиль помогает увидеть ошибку раньше, а не заменяет рассуждение.

Связанные материалы

Источники и материалы