Node:indent style, Next:index of X, Previous:include war, Up:= I =

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.

The Jargon File, Version 4.2.2, 20 Aug 2000 · 第 887 / 1941 题