3.2.a. The names of variables within a series of declarations shall have their first characters aligned.

3.2.b. The names of struct and union members shall have their first characters aligned.

3.2.c. The assignment operators within a block of adjacent assignment statements shall be aligned.

3.2.d. The # in a preprocessor directive shall always be located at the start of a line, though the directives themselves may be indented within a #if or #ifdef sequence.


#   define BUFFER_BYTES    128
#   define BUFFER_BYTES    64
typedef struct
    uint8_t    buffer[BUFFER_BYTES]; 
    uint8_t    checksum;

} string_t;

Reasoning: Visual alignment emphasizes similarity. A series of consecutive lines each containing a variable declaration is easily seen and understood as a block of related lines of code. Blank lines and differing alignments should be used as appropriate to visually separate and distinguish unrelated blocks of code that happen to be located in proximity.

Enforcement: These rules shall be enforced during code reviews.