Changeset 605
- Timestamp:
- Apr 9, 2007, 4:24:52 AM (19 years ago)
- File:
-
- 1 edited
-
trunk/CodingStyle.txt (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/CodingStyle.txt
r459 r605 1 1 2 Coding Style Guide 3 ================== 2 Coding Style Guidelines 3 ======================== 4 4 5 5 Line lengths … … 7 7 Try to keep lines less than 80 characters. 8 8 9 Break lines after logical separators 9 Break lines after logical separators. 10 10 11 Vertically align like constructs 11 Vertically align like constructs. 12 13 func(arg1, 14 arg2); 12 15 13 16 Indents … … 17 20 Place function definition } in column 1 18 21 19 In tent nested constructs by 2 characters22 Indent nested constructs by 2 characters 20 23 21 24 void func() 22 25 { 23 st mt26 statement; 24 27 if (expr) 25 st mt228 statement2; 26 29 } 27 30 28 31 Tabs 29 32 30 Use only 8 column tabs 33 Use only 8 column tabs. 31 34 32 35 Layouts 33 36 34 37 if (expr) 35 statement 38 statement; 36 39 37 // If expr and statement are brief 38 if (expr) statement 40 // If expr and statement are brief single line is OK. 41 if (expr) statement; 42 43 // If statment is long, split logically and use braces. 44 if (expr) { 45 statement_part1... 46 restoflongstatement; 47 } 48 49 if (expr) 50 statement; 51 else 52 statement2; 39 53 40 54 if (expr1) { 55 statement1; 56 statement2; 57 } 58 else if (expr2) { 41 59 } 42 60 else { 43 61 } 44 62 45 // If expression must be wrapped 46 // align like constructs vertically 63 // If expression wrapped, align like constructs vertically. 47 64 if (expr1 && 48 65 expr2)) 49 66 { 67 } 68 69 // Prefer expression sense that places shorter statement list first. 70 if (!expr) 71 ReportError(); 72 else { 73 statement1; 74 ...; 75 statementn; 50 76 } 51 77 … … 62 88 Variable definitions 63 89 64 Define one per line90 Define one variable per line. They are easier to find and understand. 65 91 66 92 INT a; 67 INT b;93 INT *pb; 68 94 69 95 not 70 96 71 INT a, b;97 INT a,*b; 72 98 99 Variable naming 100 101 Prefer Hungarian notation and CamelCaps for global variables. 102 103 BOOL fAGlobalFlag; 104 105 Prefer lower case and underscores for local variables. 106 107 BOOL is_ok; 108 109 Local varibles can be short as long as meaning is clear. 110 111 BOOL ok; 112 113 Underscores can be omitted if name remains readable. 114 115 USHORT maxcnt; 116 73 117 Spaces 74 118 75 Separate keywords from leading paren with 1 space 119 Separate keywords from leading paren with 1 space. 76 120 77 if (expr) dothis121 if (expr) statement; 78 122 79 No space between function name and leading paren80 No space between last arg and trailing paren123 No spaces between function name and leading paren. 124 No spaces between last arg and trailing paren. 81 125 82 126 func() 83 127 84 Follow separating commas and semicolons with a space 128 Follow separating commas and semicolons with a space. 85 129 86 130 x = func(a, c) 87 131 88 Surround binary operators with a leading and trailing spaces 132 Surround binary operators with a leading and trailing spaces. 89 133 90 134 x = a + b 91 135 92 Try to avoid spurious internal and trailing whitespace 136 Try to avoid spurious internal and trailing whitespace. 137 138 Expressions 139 140 Do not use superfluous parens. 141 142 Prefer 143 144 return 0; 145 146 to 147 148 return (0); 149 150 Do not use superfluous parens when operator precedence with do the 151 right thing. 152 153 Prefer 154 155 if (a & mask && c) 156 157 to 158 159 if ((a & mask) && c) 160 161 Avoid nested ternary conditionals (i.e. ? :). They are hard to read and 162 rarely generate better code than switch or if statement. 93 163 94 164 Memory … … 100 170 101 171 - Use xfree rather than free 172 173 - Buffer overflow possible, check for it. 102 174 103 175 Windows
Note:
See TracChangeset
for help on using the changeset viewer.
