字下げスタイル
Allman-8はK&Rの亜種であるLinuxカーネルの80文字制限と8文字のタブ記号に従ったもので、アメリカの教育現場でよく使われている。このスタイルはプロジェクター使用時の可読性を向上させる。また字下げ幅と桁数制限により、深すぎるネストが一目でわかるようになる。こうした利点は初心者や学習者が複雑なコードを自然に避けるように仕向けるのに役立つ。
字下げは大半のプログラミング言語では必須ではない。むしろ、プログラマは他の読者、あるいは自分自身にプログラムの構造を見やすく伝えるために字下げを行う。特に字下げは、条件分岐やループといった制御構造を明示するために使われる。なお一部の言語(PythonやOccam)では、括弧やキーワードではなく字下げで構造を定義する。これはオフサイドルールと呼ばれ、字下げはコンパイラやインタプリタの解釈に影響を与え、見やすさやスタイルを超える意味を持つ。
行頭の中括弧で関数本体の先頭を検出しているツール等があったため、標準化後や他のスタイルのコードでもここだけは同じにしていることも多い)。
プログラミング言語C は、プログラミングにこのスタイルを推奨しているわけではない。次で述べるように、スタイルを選んだら一貫して使うように、とのみ述べている。単に同書に印刷されているプログラムリストがこのスタイルであるというだけであり、書籍としてのレイアウト上の都合による点がある(特に波括弧の手前に改行を入れない点など)とも言われる。
同書自身による注意をここに引用する:
これは字下げスタイルにこだわる人々への戒めでもある。著者の1人デニス・リッチーはC言語の設計開発者でもあるが、彼がこの字下げスタイルの支持者というわけでもない。
初期のC言語では、引数の型は行を分けて書かなければならなかった (関数ヘッダの直後)。