43 lines
2.8 KiB
Plaintext
43 lines
2.8 KiB
Plaintext
indent style
|
|
|
|
n. [C, C++, and Java programmers] The rules one uses to indent code in a
|
|
readable fashion. There are four major C indent styles, described below; all
|
|
have the aim of making it easier for the reader to visually track the scope
|
|
of control constructs. They have been inherited by C++ and Java, which have
|
|
C-like syntaxes. The significant variable is the placement of { and } with
|
|
respect to the statement(s) they enclose and to the guard or controlling
|
|
statement ( if , else , for , while , or do ) on the block, if any. K R
|
|
style Named after Kernighan Ritchie, because the examples in K R are
|
|
formatted this way. Also called kernel style because the Unix kernel is
|
|
written in it, and the One True Brace Style (abbrev. 1TBS) by its partisans.
|
|
In C code, the body is typically indented by eight spaces (or one tab) per
|
|
level, as shown here. Four spaces are occasionally seen in C, but in C++ and
|
|
Java four tends to be the rule rather than the exception. if( cond ){ body
|
|
} Allman style Named for Eric Allman, a Berkeley hacker who wrote a lot of
|
|
the BSD utilities in it (it is sometimes called BSD style ). Resembles
|
|
normal indent style in Pascal and Algol. It is the only style other than K R
|
|
in widespread use among Java programmers. Basic indent per level shown here
|
|
is eight spaces, but four (or sometimes three) spaces are generally
|
|
preferred by C++ and Java programmers. if( cond ) { body } Whitesmiths
|
|
style popularized by the examples that came with Whitesmiths C, an early
|
|
commercial C compiler. Basic indent per level shown here is eight spaces,
|
|
but four spaces are occasionally seen. if( cond ) { body } GNU style Used
|
|
throughout GNU EMACS and the Free Software Foundation code, and just about
|
|
nowhere else. Indents are always four spaces per level, with { and } halfway
|
|
between the outer and inner indent levels. if( cond ) { body } Surveys have
|
|
shown the Allman and Whitesmiths styles to be the most common, with about
|
|
equal mind shares. K R/1TBS used to be nearly universal, but is now much
|
|
less common in C (the opening brace tends to get lost against the right
|
|
paren of the guard part in an if or while , which is a Bad Thing ).
|
|
Defenders of 1TBS argue that any putative gain in readability is less
|
|
important than their style's relative economy with vertical space, which
|
|
enables one to see more code on one's screen at once. The Java Language
|
|
Specification legislates not only the capitalization of identifiers, but
|
|
where nouns, adjectives, and verbs should be in method, class, interface,
|
|
and variable names (section 6.8). While the specification stops short of
|
|
also standardizing on a bracing style, all source code originating from Sun
|
|
Laboratories uses the K R style. This has set a precedent for Java
|
|
programmers, which most follow. Doubtless these issues will continue to be
|
|
the subject of holy wars.
|
|
|