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