When comparing (Linux) Kernel 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 (Linux) Kernel Style is ranked 5th. 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 Easier to define where a block starts and ends
The large indentation suggested by this style makes it easier to define where a block of code starts and where it ends. Especially after looking at a screen for a prolonged amount of time.
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 Hard to read in small monitors
Since the Kernel style uses 8 characters for indentation, the lines of code are pushed too much to the right. This may make it harder to read for small monitors (for example terminal monitors which are 80 characters wide).
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.