C utils/macros