guides:programstyle:whitespace
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
guides:programstyle:whitespace [2020/08/04 16:45] – [One line per statement in most cases.] wikiadmin | guides:programstyle:whitespace [2024/07/25 15:01] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 26: | Line 26: | ||
* **vi** | * **vi** | ||
* In vi, add //set expandtab// to your .vi, .exrc, vimrc or other | * In vi, add //set expandtab// to your .vi, .exrc, vimrc or other | ||
+ | * **nano** | ||
+ | * In nano, add //set tabstospaces// | ||
+ | * You can also set the size of the indentation with //set tabsize 4// (or whatever size you wish). | ||
+ | |||
Line 57: | Line 61: | ||
An unacceptable example | An unacceptable example | ||
<code c++> | <code c++> | ||
- | x = r | + | x = r |
*cos(theta * M_PI/180) | *cos(theta * M_PI/180) | ||
*sin(phi * M_PI/180) | *sin(phi * M_PI/180) | ||
</ | </ | ||
+ | |||
+ | An exception to this rule occurs when a line becomes long and needs to be wrapped. | ||
+ | * Functions with many parameters | ||
+ | * Output lines | ||
+ | |||
+ | See the [[guides: | ||
+ | |||
+ | A second exception occurs when declaring multiple variables of the same type. Again, see [[guides: | ||
==== Use blank lines to separate sections of code. ==== | ==== Use blank lines to separate sections of code. ==== | ||
+ | |||
+ | Much like new paragraphs in English composition, | ||
+ | |||
+ | The following is an unacceptable use of blank lines | ||
+ | <code c++> | ||
+ | int max = 0, | ||
+ | min = 0, | ||
+ | num, | ||
+ | sum = 0, | ||
+ | i, | ||
+ | count; | ||
+ | bool first = true; | ||
+ | cin >> count; | ||
+ | for(i = 0; i < count; i++) { | ||
+ | cin >> num; | ||
+ | if(first) { | ||
+ | min = num; | ||
+ | | ||
+ | first = false; | ||
+ | } | ||
+ | sum += num; | ||
+ | if (num > max) { | ||
+ | max = num; | ||
+ | } | ||
+ | if (num < min) { | ||
+ | num = min; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | The following is a more acceptable use of blank lines. | ||
+ | <code c++> | ||
+ | int max = 0, | ||
+ | min = 0, | ||
+ | num, | ||
+ | sum = 0, | ||
+ | i, | ||
+ | count; | ||
+ | | ||
+ | bool first = true; | ||
+ | |||
+ | cin >> count; | ||
+ | for(i = 0; i < count; i++) { | ||
+ | cin >> num; | ||
+ | | ||
+ | if(first) { | ||
+ | min = num; | ||
+ | | ||
+ | first = false; | ||
+ | } | ||
+ | | ||
+ | sum += num; | ||
+ | | ||
+ | if (num > max) { | ||
+ | max = num; | ||
+ | } | ||
+ | | ||
+ | if (num < min) { | ||
+ | num = min; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
==== Consistently use a single style for brace placement. ==== | ==== Consistently use a single style for brace placement. ==== | ||
+ | |||
+ | Braces are used to mark the body of control structures, type definitions and other related blocks of code. A consistent use of bracket placement provides readers with a visual guide to the structure of a program. | ||
+ | |||
+ | Several styles are approved in the local style guide. | ||
+ | |||
+ | === Allman === | ||
+ | |||
+ | In the Allman style, braces associated with the start of a control statement begin on the next line, indented at the same level. | ||
+ | |||
+ | <code c++> | ||
+ | int main() | ||
+ | { | ||
+ | int i; | ||
+ | bool printed = false; | ||
+ | |||
+ | for(i = 1; i < 100; i++) | ||
+ | { | ||
+ | printed = false; | ||
+ | | ||
+ | if (i % 3 == 0) | ||
+ | { | ||
+ | cout << " | ||
+ | | ||
+ | } | ||
+ | | ||
+ | if (i % 5 == 0) | ||
+ | { | ||
+ | cout << " | ||
+ | | ||
+ | } | ||
+ | | ||
+ | if (not printed) | ||
+ | { | ||
+ | cout << i; | ||
+ | } | ||
+ | cout << endl; | ||
+ | } | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | === K&R OTBS === | ||
+ | |||
+ | In this style, the opening brace is placed at the end of the beginning of a control structure. | ||
+ | <code c++> | ||
+ | int main() { | ||
+ | int i; | ||
+ | bool printed = false; | ||
+ | |||
+ | for(i = 1; i < 100; i++) { | ||
+ | printed = false; | ||
+ | | ||
+ | if (i % 3 == 0) { | ||
+ | cout << " | ||
+ | | ||
+ | } | ||
+ | | ||
+ | if (i % 5 == 0) { | ||
+ | cout << " | ||
+ | | ||
+ | } | ||
+ | | ||
+ | if (not printed) { | ||
+ | cout << i; | ||
+ | } | ||
+ | cout << endl; | ||
+ | } | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | While either style is acceptable, programmers should select a single style and employ it constantly. | ||
+ | |||
+ | |||
==== Place spaces between operators in statements. ==== | ==== Place spaces between operators in statements. ==== | ||
- | ==== Do not exceed 80 characters | + | |
+ | Proper spacing in statements, especially mathematical calculations make it easier to read these statements. | ||
+ | |||
+ | Unacceptable example: | ||
+ | <code c++> | ||
+ | for(i=0; | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | x = r*cos(theta)*sin(phi); | ||
+ | |||
+ | r1 = (-b+sqrt(4*a*c))/ | ||
+ | </ | ||
+ | |||
+ | Acceptable example: | ||
+ | <code c++> | ||
+ | for(i = 0; i < 20; i++) { | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | x = r * cos(theta) * sin(phi); | ||
+ | |||
+ | r1 = (-b + sqrt(4*a*c)) / (2*a); | ||
+ | </ |
guides/programstyle/whitespace.1596559502.txt.gz · Last modified: 2024/07/25 15:01 (external edit)