K&Rのスタイル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/16 23:47 UTC 版)
K&Rスタイル (あるいは、カーネルスタイル)とは、ブライアン・カーニハンとデニス・リッチーの著書でK&Rこと『プログラミング言語C』で使われた字下げスタイルであり、C言語で一般に使われている。C11 の仕様書 ISO/IEC 9899:2011 のサンプル、UNIXカーネル、Linuxカーネルはこのスタイルでソースコードが書かれている。Objective-C、C++ などでは、それほど一般的ではない。このスタイルでは、ブロック開始の中括弧を制御文と同じ行に置き、ブロック内の文を字下げして記し、ブロックを閉じる中括弧を制御文と同じ字下げ位置に戻して記す(その行は中括弧が先頭になる)。関数はそれとは異なり、関数の定義の最初の中括弧は宣言の次の行の先頭に記され、宣言と同じ字下げレベルとなる(これは次の例で示すように、ANSI標準より前の構文のせいでもある(K&Rの初版の中のコードはこのような構文で書かれていた)。行頭の中括弧で関数本体の先頭を検出しているツール等があったため、標準化後や他のスタイルのコードでもここだけは同じにしていることも多い)。 int main(argc, argv) int argc; char *argv[];{ ... while (x == y) { something(); somethingelse(); if (some_error) do_correct(); // K&Rでは単独の文しかないブロックには注括弧を付けていない。 else continue_as_usual(); } finalthing(); ...} プログラミング言語C は、プログラミングにこのスタイルを推奨しているわけではない。次で述べるように、スタイルを選んだら一貫して使うように、とのみ述べている。単に同書に印刷されているプログラムリストがこのスタイルであるというだけであり、書籍としてのレイアウト上の都合による点がある(特に波括弧の手前に改行を入れない点など)とも言われる。 同書自身による注意をここに引用する: 中括弧の位置はあまり重要ではないが、それに信念を持っている人々も多い。我々はある一般的なスタイルを選択した。あなたは自分に合ったスタイルを選んで、一貫してそれを使えばよい。 — Brian W. Kernighan and Dennis M. Ritchie、プログラミング言語C これは字下げスタイルにこだわる人々への戒めでもある。著者の1人デニス・リッチーはC言語の設計開発者でもあるが、彼がこの字下げスタイルの支持者というわけでもない。 初期のC言語では、引数の型は行を分けて書かなければならなかった(関数ヘッダの直後)。 /* ISO標準化以前の関数プロトタイプ宣言がなかった時代の、オリジナルのC言語で使われていたスタイル */int main(argc, argv) int argc; char *argv[];{ ...}
※この「K&Rのスタイル」の解説は、「字下げスタイル」の解説の一部です。
「K&Rのスタイル」を含む「字下げスタイル」の記事については、「字下げスタイル」の概要を参照ください。
- K&Rのスタイルのページへのリンク