| Do not write the characters 'l' (ell) and '1' (one) or 'O' (oh) and '0' (zero) in the same identifier. |
| Declare each variable on a separate line in a separate declaration statement. If the declaration is not self-explanatory, append a comment describing the variable. |
| Initialise all objects at definition. Never use an object before it has been given a value. |
| Postpone variable definitions as long as possible. |
| Do not use the plain 'char' type when declaring objects that are subject to numeric operations. In this case always use an explicit 'signed char' or 'unsigned char' declaration. |
| Use class types or typedefs to indicate scalar quantities. |
| Declare one type name only in each typedef declaration. |
| Do not typedef array types. |
| Do not use unbounded (C-style) aggregate types. |
| Avoid pointers to members. |
| Use 'const' whenever possible. |
| Directly append the '*' and '&' to type names in declarations and definitions. |
| Prefer to use signed numeric values, not unsigned. |