Recommendations

EXP00-A. Use parentheses for precedence of operation

EXP01-A. Use parentheses within macros around variable names

EXP02-A. Don't use the preprocessor for defining complex macros

EXP03-A. Explicitly cast or convert variables

EXP04-A. Avoid void* pointers when possible

Rules

Do not depend on order of evaluation within a sequence point