When comparing GNU style vs K&R (Kernighan & Ritchie) Style, the Slant community recommends K&R (Kernighan & Ritchie) Style for most people. In the question“What is the best indentation style in C?” K&R (Kernighan & Ritchie) Style is ranked 2nd while GNU style is ranked 4th. The most important reason people chose K&R (Kernighan & Ritchie) Style is:
Ensuring that control structures don't share lines with the content they define is important. Lines are the "boxes" or categories into which related syntax goes. In the case of a code block, all the syntax related to a given statement goes on the same line. This not only helps visual comprehension, but ensures that line-wise operations (user inputs like a triple-click or middle button click to select a line, delete a line, cut a line, duplicate a line, etc.) remain meaningful and effective.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Comments are written in English
The GNU coding standard requires that programmers write their comments in English because English is the most widely known language by programmers all over the world. This makes programs written in GNU style easy to understand internationally.
Pro Consumes minimal vertical space while keeping opening/closing syntax of code blocks on separate lines from their contents
Ensuring that control structures don't share lines with the content they define is important. Lines are the "boxes" or categories into which related syntax goes. In the case of a code block, all the syntax related to a given statement goes on the same line. This not only helps visual comprehension, but ensures that line-wise operations (user inputs like a triple-click or middle button click to select a line, delete a line, cut a line, duplicate a line, etc.) remain meaningful and effective.
Pro Size symmetry between the opening/closing of clode blocks
Symmetry in size is important because it provides a visual cue that two things are similar in effect/importance. For example, in written text, lines of a paragraph are the same space apart. The space between paragraphs is larger, but also the same between each. The space between subsections, sections and chapters are progressively larger still. The space between things indicates their relatedness, and helps the reader to implicitly grasp the relationships between elements in the document.
Pro No meaningless lines avoids artificial distance between related things
Each line tells the reader something they wouldn't otherwise know, and they can therefore progress from line to line next gathering new information at each without pausing at lines which only contain a brace indicating that a code block is about to begin or just ended.
Pro No space is wasted with the opening brace
With this style, one of the advantages is that the opening brace does not take a whole line for itself, wasting a lot of space. The closing brace though is indented on the same level as the control statement it belongs to, making it easier to understand which block of code it's closing.
Cons
Con Harder to understand which statement the ending brace belongs to
Since braces are in a newline and indented by two spaces, it may be hard to understand what statement the ending brace belongs to.
Con May be hard to insert new lines inside statements if there are no braces
The K&R style uses braces only when necessary. So for example:
if(condition)
doSomething();
But this can be annoying if you need to put something inside that if
statement, because you have to go and add braces to make sure that will be grouped correctly with the statement that was before.
Con Hard to read when the opening statement has multiple lines
If the opening block statement has multiple lines, it really decreases the code legibility because now you have your code block mixed with the opening statement.