Редакторы текста, входящие в состав большинства популярных сред разработки, часто предоставляют средства для поддержки используемого стиля отступов, например, автоматическую вставку пробелов/табуляции при вводе скобок, обозначающих начало/конец логического блока.
Существует четыре основных стиля отступов Си. Описанные ниже, все они имеют своей целью облегчение визуального отслеживания управляющих конструкций. Камнем преткновения является расстановка программных скобок { и } и оформление операторов (if, else, for, while, или do) в блоки.
Стиль «K&R»
Назван в честь Кернигана и Ритчи из-за того, что все примеры из их книги «Язык программирования Си» (нередко обозначаемой как просто «K&R» по инициалам авторов) отформатированы подобным образом. Также известен как «kernel style» (BSD KNF; из-за того, что ядроUNIX написано на нём), а также как «Единственный правильный скобочный стиль» (англ.One True Brace Style, 1TBS) со слов его приверженцев. Основной отступ, показанный ниже, состоит из 8 пробелов (или одной табуляции) на уровень. Хотя чаще всего используется 4 пробела.
Открывающая программная скобка располагается на новой строке с тем же отступом, что и выражение, находящееся на предшествующей строке.
Первое выражение внутри программных скобок располагается на новой строке с отступом, увеличенным (по выбору программиста) на:
1 символ табуляции (данный вариант используется в исходном коде современных версий программы sendmail, автором которой является Эрик Олман)
2, 4 или 8 пробелов (конкретный выбор количества пробелов должен оставаться неизменным на протяжении всего текста программы)
любое другое количество пробелов или символов табуляции при условии, что это количество не изменяется на протяжении всего текста программы
Последующие выражения внутри программных скобок располагаются с тем же отступом, что и первое.
Закрывающая программная скобка располагается с отступом, равным отступу соответствующей ей открывающей программной скобке (то есть точно под нею).
Пример кода, отформатированного в стиле Олмана:
if (<cond>)
{
········<body>
}
Стиль Уайтсмитс
Стиль Уайтсмитс — популярен из-за примеров, шедших с Whitesmiths C — одним из первых компиляторов языка С. Основной отступ на уровень для скобок и блока — 4 пробела.
if (<cond>)
····{
····<body>
····}
Стиль GNU
Стиль GNU — используется во всех исходниках проекта GNU (например, GNU Emacs). Отступ составляет 2 символа на уровень, скобки расположены на собственном отступе[1].