My biggest tip for writing maintainable C for modern compilers is to avoid passing bare primitives between functions.  Don&#x27;t just typedef - wrap things in (single-element) structs that describe the contents.  The compilers these days understand that they can boil off the wrapper when generating code.