Extending C with cmacro